@stacksjs/stx 0.2.685 → 0.2.686

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 (100) hide show
  1. package/dist/{chunk-2ajbhefk.js → chunk-078as147.js} +1 -1
  2. package/dist/{chunk-r8cn9qhr.js → chunk-0nt17nas.js} +1 -1
  3. package/dist/{chunk-9wd31tc6.js → chunk-0y2hkbc6.js} +1 -1
  4. package/dist/{chunk-mxbp4vyy.js → chunk-1rgjy80j.js} +2 -2
  5. package/dist/{chunk-6nhsvb9x.js → chunk-1x0pf3sw.js} +1 -1
  6. package/dist/chunk-31jvtxpx.js +2 -0
  7. package/dist/{chunk-jsac71cy.js → chunk-4cksc4n3.js} +1 -1
  8. package/dist/{chunk-ppxfsqwh.js → chunk-4dzh6g52.js} +1 -1
  9. package/dist/{chunk-9xp9hs7t.js → chunk-4j9p27kn.js} +1 -1
  10. package/dist/chunk-4ntt6d6q.js +2 -0
  11. package/dist/{chunk-7st0prz9.js → chunk-51fqvchq.js} +2 -2
  12. package/dist/{chunk-fbdmsw5j.js → chunk-58m0kfb3.js} +1 -1
  13. package/dist/{chunk-kgcwx6nt.js → chunk-5ahrdnm0.js} +1 -1
  14. package/dist/{chunk-fb84n8kz.js → chunk-67v3rh14.js} +2 -2
  15. package/dist/{chunk-7grjwpdq.js → chunk-6te346zf.js} +1 -1
  16. package/dist/chunk-71d927c6.js +2 -0
  17. package/dist/{chunk-xpch3mq8.js → chunk-7gprzmd9.js} +1 -1
  18. package/dist/chunk-7w7e24e9.js +2 -0
  19. package/dist/{chunk-f5s2h2y8.js → chunk-840waqpm.js} +1 -1
  20. package/dist/{chunk-km6ggz8n.js → chunk-90ggz2m1.js} +1 -1
  21. package/dist/{chunk-px7ryjd9.js → chunk-9c3x72qy.js} +1 -1
  22. package/dist/{chunk-6qn368e7.js → chunk-a7hcwkjz.js} +2 -2
  23. package/dist/{chunk-yhba2f9d.js → chunk-av02901t.js} +1 -1
  24. package/dist/{chunk-8x34g2ad.js → chunk-bg6t69qq.js} +1 -1
  25. package/dist/chunk-c0fkhe6t.js +2 -0
  26. package/dist/{chunk-d0g4zndy.js → chunk-cge9pgyb.js} +1 -1
  27. package/dist/{chunk-dpghx4z6.js → chunk-d26nb6zy.js} +1 -1
  28. package/dist/{chunk-nsvnxkyb.js → chunk-d9esaahz.js} +2 -2
  29. package/dist/{chunk-qjmvcqfh.js → chunk-dbxq6fd7.js} +1 -1
  30. package/dist/{chunk-4k3jx9mm.js → chunk-dnbdxbkb.js} +6 -6
  31. package/dist/{chunk-gn98ha90.js → chunk-dv8a3gp8.js} +1 -1
  32. package/dist/{chunk-qgs69nds.js → chunk-dxcn65hq.js} +1 -1
  33. package/dist/chunk-ebmcecyh.js +2 -0
  34. package/dist/chunk-ejphs9fs.js +2 -0
  35. package/dist/chunk-em77nd40.js +2 -0
  36. package/dist/chunk-exbs8qm6.js +2 -0
  37. package/dist/{chunk-bnggav14.js → chunk-f4fxj7xg.js} +1 -1
  38. package/dist/{chunk-6zzg889q.js → chunk-ffwvbqkp.js} +1 -1
  39. package/dist/{chunk-eykbcntx.js → chunk-fndg9ar3.js} +1 -1
  40. package/dist/{chunk-4ht54p3j.js → chunk-fw12pvmr.js} +4 -4
  41. package/dist/chunk-gyye3mcb.js +2 -0
  42. package/dist/{chunk-wt6f9pk9.js → chunk-hx787tfa.js} +1 -1
  43. package/dist/{chunk-mf8yzpyy.js → chunk-hxnvcvkz.js} +1 -1
  44. package/dist/{chunk-bxr4c8rg.js → chunk-j7phk6kh.js} +1 -1
  45. package/dist/chunk-jdhdae0h.js +2 -0
  46. package/dist/{chunk-5t9ndqfm.js → chunk-jgxzbthg.js} +1 -1
  47. package/dist/{chunk-gwqw8r2e.js → chunk-jq4h969v.js} +1 -1
  48. package/dist/chunk-k8b4fme9.js +2 -0
  49. package/dist/{chunk-6e60jp4a.js → chunk-kq1hmpgb.js} +1 -1
  50. package/dist/{chunk-4r8c96a0.js → chunk-kqzrm2ym.js} +5 -5
  51. package/dist/{chunk-4rj9746b.js → chunk-n4qp4q2x.js} +1 -1
  52. package/dist/{chunk-49c5v5fh.js → chunk-n93krbsx.js} +1 -1
  53. package/dist/{chunk-e5kz0y03.js → chunk-pf25jb54.js} +4 -4
  54. package/dist/chunk-q4jpjjdc.js +2 -0
  55. package/dist/{chunk-3tp7r57c.js → chunk-r0ys9aqa.js} +1 -1
  56. package/dist/{chunk-9wa3t87n.js → chunk-r21m7gsd.js} +1 -1
  57. package/dist/chunk-rz0kkfd3.js +2 -0
  58. package/dist/{chunk-718rkxa7.js → chunk-s84zv8ky.js} +1 -1
  59. package/dist/chunk-t2eadw9a.js +2 -0
  60. package/dist/{chunk-nqvex98n.js → chunk-v6wa51js.js} +3 -3
  61. package/dist/{chunk-zhcb33s1.js → chunk-vewm4kr8.js} +1 -1
  62. package/dist/{chunk-gccwjjzw.js → chunk-vnnwp1cg.js} +1 -1
  63. package/dist/{chunk-zf6kmw9q.js → chunk-w0zrp51m.js} +1 -1
  64. package/dist/{chunk-w6frg42f.js → chunk-x828kq22.js} +1 -1
  65. package/dist/{chunk-jrche9k7.js → chunk-xp2cn23j.js} +1 -1
  66. package/dist/{chunk-t3e5tv4h.js → chunk-xw0cqb5m.js} +6 -6
  67. package/dist/{chunk-gkmh0xys.js → chunk-ydad3kq5.js} +1 -1
  68. package/dist/{chunk-w3q5czk5.js → chunk-yf42bhjw.js} +2 -2
  69. package/dist/{chunk-r7csb300.js → chunk-ygb33q5w.js} +1 -1
  70. package/dist/{chunk-cnvwrv5a.js → chunk-ymjpqt50.js} +1 -1
  71. package/dist/{chunk-01bd9hrj.js → chunk-yqgrjf9q.js} +1 -1
  72. package/dist/{chunk-qz314za9.js → chunk-ywpyxqn5.js} +1 -1
  73. package/dist/chunk-z0r4vm2m.js +2 -0
  74. package/dist/{chunk-244tyyhx.js → chunk-z10ffhzy.js} +1 -1
  75. package/dist/cli.js +7 -7
  76. package/dist/craft-entry.js +1 -1
  77. package/dist/craft.js +1 -1
  78. package/dist/env.d.ts +1 -1
  79. package/dist/env.js +2 -2
  80. package/dist/process.js +2 -2
  81. package/dist/pwa.js +2 -2
  82. package/dist/ssg.js +5 -5
  83. package/dist/types/config-types.d.ts +1 -0
  84. package/package.json +5 -5
  85. package/dist/chunk-42c308vk.js +0 -2
  86. package/dist/chunk-8y7tpjfs.js +0 -2
  87. package/dist/chunk-bhm9sdnv.js +0 -2
  88. package/dist/chunk-bpk0qy53.js +0 -2
  89. package/dist/chunk-cxvka6g3.js +0 -2
  90. package/dist/chunk-fzfa35ft.js +0 -2
  91. package/dist/chunk-kxqvfdm9.js +0 -2
  92. package/dist/chunk-m1cwgzqy.js +0 -2
  93. package/dist/chunk-mn9xw0fe.js +0 -2
  94. package/dist/chunk-sy19th0w.js +0 -2
  95. package/dist/chunk-t8djd28a.js +0 -2
  96. package/dist/chunk-tfhhxpda.js +0 -2
  97. package/dist/chunk-v3mmxk1y.js +0 -2
  98. package/dist/chunk-x519ewtq.js +0 -2
  99. package/dist/chunk-xe40yhcw.js +0 -2
  100. package/dist/chunk-xs8228sa.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Xs,Ji,Yi}from"./chunk-y55pcfaj.js";import"./chunk-3tp7r57c.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import"./chunk-t3e5tv4h.js";import"./chunk-t6m5d64b.js";import"./chunk-8x34g2ad.js";import"./chunk-tenbwcts.js";import"./chunk-kypwg2ws.js";import"./chunk-mxbp4vyy.js";import"./chunk-r7csb300.js";import"./chunk-912r15hr.js";import"./chunk-fbdmsw5j.js";import"./chunk-fb84n8kz.js";import"./chunk-4k3jx9mm.js";import"./chunk-4rj9746b.js";import"./chunk-e5kz0y03.js";import"./chunk-7st0prz9.js";import"./chunk-qgs69nds.js";import"./chunk-9bgb9n12.js";import"./chunk-03xn8244.js";import{ep,Hi,tp,np,Vi,Gs,Ui,rp,Wi,sp,op,qi,Ki,Gi,Xi}from"./chunk-244tyyhx.js";import"./chunk-w3q5czk5.js";import"./chunk-wt6f9pk9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-9wd31tc6.js";var m=new Map,d=new Map;function R(t,e){let n=e?.id||E(t),r=I(t),a=m.get(n);if(a&&a.hash===r)return a;let i=M(t),s=L(t),o=W(t),c=O(i),{staticParts:p,dynamicParts:l}=A(i),f=_(t),g={id:n,hash:r,tree:i,scripts:s,styles:o,staticParts:p,dynamicParts:l,dependencies:f,metadata:c};return m.set(n,g),g}async function Q(t,e={},n={}){let r=performance.now();if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`,c=d.get(o);if(c&&Date.now()-c.timestamp<(n.cacheTTL||60000))return{html:c.html,styles:t.styles.join(`
2
+ import{Xs,Ji,Yi}from"./chunk-y55pcfaj.js";import"./chunk-r0ys9aqa.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import"./chunk-xw0cqb5m.js";import"./chunk-t6m5d64b.js";import"./chunk-bg6t69qq.js";import"./chunk-tenbwcts.js";import"./chunk-kypwg2ws.js";import"./chunk-1rgjy80j.js";import"./chunk-ygb33q5w.js";import"./chunk-912r15hr.js";import"./chunk-58m0kfb3.js";import"./chunk-67v3rh14.js";import"./chunk-dnbdxbkb.js";import"./chunk-n4qp4q2x.js";import"./chunk-pf25jb54.js";import"./chunk-51fqvchq.js";import"./chunk-dxcn65hq.js";import"./chunk-9bgb9n12.js";import"./chunk-03xn8244.js";import{ep,Hi,tp,np,Vi,Gs,Ui,rp,Wi,sp,op,qi,Ki,Gi,Xi}from"./chunk-z10ffhzy.js";import"./chunk-yf42bhjw.js";import"./chunk-hx787tfa.js";import"./chunk-fw12pvmr.js";import"./chunk-jgxzbthg.js";import"./chunk-0y2hkbc6.js";var m=new Map,d=new Map;function R(t,e){let n=e?.id||E(t),r=I(t),a=m.get(n);if(a&&a.hash===r)return a;let i=M(t),s=L(t),o=W(t),c=O(i),{staticParts:p,dynamicParts:l}=A(i),f=_(t),g={id:n,hash:r,tree:i,scripts:s,styles:o,staticParts:p,dynamicParts:l,dependencies:f,metadata:c};return m.set(n,g),g}async function Q(t,e={},n={}){let r=performance.now();if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`,c=d.get(o);if(c&&Date.now()-c.timestamp<(n.cacheTTL||60000))return{html:c.html,styles:t.styles.join(`
3
3
  `),scripts:t.scripts.join(`
4
4
  `),metadata:{renderTime:0,cacheHit:!0,totalSize:c.html.length,componentCount:t.metadata.componentCount}}}let a;if(n.streaming)a=await H(t.tree,e);else a=h(t.tree,e);let i;if(n.hydrate){let o=j(a,t,e);a=o.html,i=o.data}if(n.minify)a=D(a);if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`;d.set(o,{html:a,timestamp:Date.now()})}let s=performance.now()-r;return{html:a,styles:t.styles.join(`
5
5
  `),scripts:t.scripts.join(`
package/dist/craft.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Xs,Ji,Yi}from"./chunk-y55pcfaj.js";import"./chunk-3tp7r57c.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import"./chunk-t3e5tv4h.js";import"./chunk-t6m5d64b.js";import"./chunk-8x34g2ad.js";import"./chunk-tenbwcts.js";import"./chunk-kypwg2ws.js";import"./chunk-mxbp4vyy.js";import"./chunk-r7csb300.js";import"./chunk-912r15hr.js";import"./chunk-fbdmsw5j.js";import"./chunk-fb84n8kz.js";import"./chunk-4k3jx9mm.js";import"./chunk-4rj9746b.js";import"./chunk-e5kz0y03.js";import"./chunk-7st0prz9.js";import"./chunk-qgs69nds.js";import"./chunk-9bgb9n12.js";import"./chunk-03xn8244.js";import{ep,Hi,tp,np,Vi,Gs,Ui,rp,Wi,sp,op,qi,Ki,Gi,Xi}from"./chunk-244tyyhx.js";import"./chunk-w3q5czk5.js";import"./chunk-wt6f9pk9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-9wd31tc6.js";var m=new Map,d=new Map;function R(t,e){let n=e?.id||E(t),r=I(t),a=m.get(n);if(a&&a.hash===r)return a;let i=M(t),s=L(t),o=W(t),c=O(i),{staticParts:p,dynamicParts:l}=A(i),f=_(t),g={id:n,hash:r,tree:i,scripts:s,styles:o,staticParts:p,dynamicParts:l,dependencies:f,metadata:c};return m.set(n,g),g}async function Q(t,e={},n={}){let r=performance.now();if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`,c=d.get(o);if(c&&Date.now()-c.timestamp<(n.cacheTTL||60000))return{html:c.html,styles:t.styles.join(`
2
+ import{Xs,Ji,Yi}from"./chunk-y55pcfaj.js";import"./chunk-r0ys9aqa.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import"./chunk-xw0cqb5m.js";import"./chunk-t6m5d64b.js";import"./chunk-bg6t69qq.js";import"./chunk-tenbwcts.js";import"./chunk-kypwg2ws.js";import"./chunk-1rgjy80j.js";import"./chunk-ygb33q5w.js";import"./chunk-912r15hr.js";import"./chunk-58m0kfb3.js";import"./chunk-67v3rh14.js";import"./chunk-dnbdxbkb.js";import"./chunk-n4qp4q2x.js";import"./chunk-pf25jb54.js";import"./chunk-51fqvchq.js";import"./chunk-dxcn65hq.js";import"./chunk-9bgb9n12.js";import"./chunk-03xn8244.js";import{ep,Hi,tp,np,Vi,Gs,Ui,rp,Wi,sp,op,qi,Ki,Gi,Xi}from"./chunk-z10ffhzy.js";import"./chunk-yf42bhjw.js";import"./chunk-hx787tfa.js";import"./chunk-fw12pvmr.js";import"./chunk-jgxzbthg.js";import"./chunk-0y2hkbc6.js";var m=new Map,d=new Map;function R(t,e){let n=e?.id||E(t),r=I(t),a=m.get(n);if(a&&a.hash===r)return a;let i=M(t),s=L(t),o=W(t),c=O(i),{staticParts:p,dynamicParts:l}=A(i),f=_(t),g={id:n,hash:r,tree:i,scripts:s,styles:o,staticParts:p,dynamicParts:l,dependencies:f,metadata:c};return m.set(n,g),g}async function Q(t,e={},n={}){let r=performance.now();if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`,c=d.get(o);if(c&&Date.now()-c.timestamp<(n.cacheTTL||60000))return{html:c.html,styles:t.styles.join(`
3
3
  `),scripts:t.scripts.join(`
4
4
  `),metadata:{renderTime:0,cacheHit:!0,totalSize:c.html.length,componentCount:t.metadata.componentCount}}}let a;if(n.streaming)a=await H(t.tree,e);else a=h(t.tree,e);let i;if(n.hydrate){let o=j(a,t,e);a=o.html,i=o.data}if(n.minify)a=D(a);if(n.cache){let o=`${t.id}:${JSON.stringify(e)}`;d.set(o,{html:a,timestamp:Date.now()})}let s=performance.now()-r;return{html:a,styles:t.styles.join(`
5
5
  `),scripts:t.scripts.join(`
package/dist/env.d.ts CHANGED
@@ -35,7 +35,7 @@ export declare function isTest(): boolean;
35
35
  * registry readable (hq.training's home page: a 2.9 MB store bundle of
36
36
  * 61,843 lines, comments included).
37
37
  */
38
- export declare function minifiesClientCode(buildMode?: string): boolean;
38
+ export declare function minifiesClientCode(buildMode?: string, minifyClient?: boolean): boolean;
39
39
  /**
40
40
  * A classic script minified by Bun: whitespace and comments gone. Its
41
41
  * top-level names can be the page's globals, so identifiers keep their
package/dist/env.js CHANGED
@@ -10,8 +10,8 @@ export function isTest() {
10
10
  const { NODE_ENV } = process.env;
11
11
  return NODE_ENV === "test";
12
12
  }
13
- export function minifiesClientCode(buildMode) {
14
- return buildMode === "compile" || isProduction();
13
+ export function minifiesClientCode(buildMode, minifyClient) {
14
+ return minifyClient ?? (buildMode === "compile" || isProduction());
15
15
  }
16
16
  export function minifyClassicScript(code) {
17
17
  if (!code)
package/dist/process.js CHANGED
@@ -229,7 +229,7 @@ async function externalBundleTag(attrs, code, options) {
229
229
  export async function buildModulesTag(sources, options, dependencies) {
230
230
  try {
231
231
  const { registeredModuleIdsIn, buildModuleRegistryScript } = await importOnce("stx/client-module-registry", () => import("./client-module-registry.js")), inputs = [], code = await buildModuleRegistryScript(registeredModuleIdsIn(...sources), {
232
- minify: minifiesClientCode(options.buildMode),
232
+ minify: minifiesClientCode(options.buildMode, options.minifyClient),
233
233
  collectInputs: inputs
234
234
  });
235
235
  for (const input of inputs)
@@ -952,7 +952,7 @@ ${runtimeScript}`);
952
952
  clientScriptsTransformed = !0;
953
953
  let processedContent = content;
954
954
  validateClientScript(content, filePath, options.strict, context.__originalFilePath);
955
- const scriptResult = await processClientScript(content, { eventBindings, attrs, hasColonDirectives, templateContent: template, filePath, projectRoot: process.cwd(), production: minifiesClientCode(options.buildMode), serverData });
955
+ const scriptResult = await processClientScript(content, { eventBindings, attrs, hasColonDirectives, templateContent: template, filePath, projectRoot: process.cwd(), production: minifiesClientCode(options.buildMode, options.minifyClient), serverData });
956
956
  output = output.replace(match, () => scriptResult);
957
957
  }
958
958
  if (clientScriptsTransformed)
package/dist/pwa.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import{As,Bt,kc,vu}from"./chunk-6e60jp4a.js";import{Rs,ei,hu,yu,bu}from"./chunk-49c5v5fh.js";import{wc,xc,Sc,gu,mu}from"./chunk-sq4w1e1g.js";import{He,Sn,ti}from"./chunk-e26pxzjj.js";import{wu,xu,Su,ku,Ps,Yp}from"./chunk-vxrhvrr9.js";import B from"fs";import w from"path";import O from"fs";import u from"path";var v=[72,96,128,144,152,192,384,512],S=[120,152,167,180],P=[16,32];async function M(n,t){let e={success:!0,generatedFiles:[],errors:[],warnings:[]},r=n.pwa?.icons;if(!r?.src)return e.errors.push("No source icon specified in pwa.icons.src"),e.success=!1,e;let o=u.isAbsolute(r.src)?r.src:u.resolve(process.cwd(),r.src);if(!await Bun.file(o).exists())return e.errors.push(`Source icon not found: ${o}`),e.success=!1,e;let a=u.resolve(t,r.outputDir||"pwa-icons");try{O.mkdirSync(a,{recursive:!0})}catch{return e.errors.push(`Failed to create output directory: ${a}`),e.success=!1,e}let s=r.sizes||v,l=r.generateWebP??!0,p=r.generateAppleIcons??!0;try{let c;try{c=await import("sharp")}catch{return e.errors.push(`sharp is not installed. Install it with: bun add sharp
3
- Icon generation requires the sharp package for image processing.`),e.success=!1,e}let g=await c.default(o).metadata();if(g.width&&g.width<512)e.warnings.push(`Source icon is ${g.width}x${g.height}. Recommend using at least 512x512 for best quality.`);for(let i of s){let d=u.join(a,`icon-${i}x${i}.png`);if(await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(d),e.generatedFiles.push(d),l){let x=u.join(a,`icon-${i}x${i}.webp`);await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:90}).toFile(x),e.generatedFiles.push(x)}}if(p){for(let d of S){let x=u.join(a,`apple-touch-icon-${d}x${d}.png`);await c.default(o).resize(d,d,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(x),e.generatedFiles.push(x)}let i=u.join(a,"apple-touch-icon.png");await c.default(o).resize(180,180,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(i),e.generatedFiles.push(i)}for(let i of P){let d=u.join(a,`favicon-${i}x${i}.png`);await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(d),e.generatedFiles.push(d)}let f=512,y=u.join(a,`icon-maskable-${f}x${f}.png`),m=Math.floor(f*0.1),k=f-m*2;await c.default(o).resize(k,k,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).extend({top:m,bottom:m,left:m,right:m,background:{r:255,g:255,b:255,alpha:1}}).png().toFile(y),e.generatedFiles.push(y)}catch(c){let h=c instanceof Error?c.message:String(c);e.errors.push(`Icon generation failed: ${h}`),e.success=!1}return e}function N(n){let t=n.sizes||v,e=n.outputDir?`/${n.outputDir}`:"/pwa-icons",r=n.generateWebP??!0,o=n.generateAppleIcons??!0,a=[];for(let s of t)if(a.push(`${e}/icon-${s}x${s}.png`),r)a.push(`${e}/icon-${s}x${s}.webp`);if(o){a.push(`${e}/apple-touch-icon.png`);for(let s of S)a.push(`${e}/apple-touch-icon-${s}x${s}.png`)}for(let s of P)a.push(`${e}/favicon-${s}x${s}.png`);return a.push(`${e}/icon-maskable-512x512.png`),a}async function I(){try{return await import("sharp"),!0}catch{return!1}}function A(n,t,e,r){let o=[],a=r.join(" ");for(let s of n)if(o.push({src:`${t}/icon-${s}x${s}.png`,sizes:`${s}x${s}`,type:"image/png",purpose:a}),e)o.push({src:`${t}/icon-${s}x${s}.webp`,sizes:`${s}x${s}`,type:"image/webp",purpose:a});return o}function C(n){return n.map((t)=>({name:t.name,short_name:t.shortName,description:t.description,url:t.url,icons:t.icons?.map((e)=>({src:e.src,sizes:e.sizes,type:e.type}))}))}function T(n){let t=n.pwa?.shareTarget;if(!t?.enabled)return;let e={action:t.action||"/share",method:t.method||"POST",enctype:t.enctype||"multipart/form-data",params:{title:t.params?.title||"title",text:t.params?.text||"text",url:t.params?.url||"url"}};if(t.acceptFiles&&t.acceptFiles.length>0)e.params.files=t.acceptFiles.map((r)=>({name:r.name,accept:r.accept}));return e}function H(n){let t=n.pwa?.fileHandlers;if(!t?.enabled||!t.accept)return;let e=[{action:t.action||"/",accept:t.accept,launch_type:t.launchType||"single-client"}];if(t.icons)e[0].icons=t.icons.map((r)=>({src:r.src,sizes:r.sizes,type:r.type}));return e}function W(n){let t=n.pwa?.protocolHandlers;if(!t||t.length===0)return;return t.map((e)=>({protocol:e.protocol,url:e.url}))}function j(n){let t=n.pwa;if(!t?.enabled||!t.manifest)return null;let{manifest:e,icons:r}=t,o=r?.sizes||[72,96,128,144,152,192,384,512],a=r?.outputDir?`/${r.outputDir}`:"/pwa-icons",s=r?.generateWebP??!0,l=r?.purpose||["any","maskable"],p={name:e.name,short_name:e.shortName||e.name,description:e.description,start_url:e.startUrl||"/",display:e.display||"standalone",display_override:e.displayOverride,orientation:e.orientation,theme_color:e.themeColor,background_color:e.backgroundColor,scope:e.scope||"/",lang:e.lang,dir:e.dir,id:e.id,categories:e.categories,icons:A(o,a,s,l)};if(e.shortcuts&&e.shortcuts.length>0)p.shortcuts=C(e.shortcuts);if(e.screenshots&&e.screenshots.length>0)p.screenshots=e.screenshots.map((f)=>({src:f.src,sizes:f.sizes,type:f.type,label:f.label,form_factor:f.platform}));let c=T(n);if(c)p.share_target=c;let h=H(n);if(h)p.file_handlers=h;let g=W(n);if(g)p.protocol_handlers=g;if(e.launchHandler)p.launch_handler={client_mode:e.launchHandler};if(e.handleLinks)p.handle_links=e.handleLinks;if(e.edgeSidePanel?.enabled)p.edge_side_panel={preferred_width:e.edgeSidePanel.preferredWidth};return p}function _(n){let t=j(n);if(!t)return"";let e=JSON.parse(JSON.stringify(t));return JSON.stringify(e,null,2)}function q(n,t){return{...t,...n,shortcuts:n.shortcuts||t.shortcuts,screenshots:n.screenshots||t.screenshots,categories:n.categories||t.categories}}function D(n){let t=[],e=n.pwa;if(!e?.enabled)return t;let r=e.manifest;if(!r)return t.push("PWA manifest configuration is missing"),t;if(!r.name)t.push("Manifest name is required");let o=["fullscreen","standalone","minimal-ui","browser"];if(r.display&&!o.includes(r.display))t.push(`Invalid display mode: ${r.display}. Must be one of: ${o.join(", ")}`);let a=["any","natural","landscape","landscape-primary","landscape-secondary","portrait","portrait-primary","portrait-secondary"];if(r.orientation&&!a.includes(r.orientation))t.push(`Invalid orientation: ${r.orientation}`);let s=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;if(r.themeColor&&!s.test(r.themeColor))t.push(`Invalid theme color: ${r.themeColor}. Must be a valid hex color.`);if(r.backgroundColor&&!s.test(r.backgroundColor))t.push(`Invalid background color: ${r.backgroundColor}. Must be a valid hex color.`);if(e.shareTarget?.enabled){if(!e.shareTarget.action)t.push("Share target action URL is required")}if(e.fileHandlers?.enabled){if(!e.fileHandlers.accept||Object.keys(e.fileHandlers.accept).length===0)t.push("File handlers must specify accepted MIME types")}if(e.protocolHandlers)for(let l of e.protocolHandlers){if(!l.protocol)t.push("Protocol handler missing protocol");if(!l.url||!l.url.includes("%s"))t.push(`Protocol handler URL must contain %s placeholder: ${l.protocol}`)}return t}import z from"path";async function F(n){let t=n.pwa?.offline;if(!t?.enabled)return"";if(t.page){let e=z.isAbsolute(t.page)?t.page:z.resolve(process.cwd(),t.page);if(await Bun.file(e).exists())try{let{processDirectives:r}=await import("./chunk-tfhhxpda.js"),o=await Bun.file(e).text();return await r(o,{},e,n,new Set)}catch(r){console.warn(`[PWA] Failed to process custom offline page: ${r}`)}else console.warn(`[PWA] Custom offline page not found: ${e}`)}return E(n)}function E(n){let t=n.pwa?.offline,e=n.pwa?.manifest,r=t?.fallbackTitle||"You are offline",o=t?.fallbackMessage||"Please check your internet connection and try again.",a=e?.themeColor||"#4f46e5",s=e?.shortName||e?.name||"App";return`<!DOCTYPE html>
2
+ import{As,Bt,kc,vu}from"./chunk-kq1hmpgb.js";import{Rs,ei,hu,yu,bu}from"./chunk-n93krbsx.js";import{wc,xc,Sc,gu,mu}from"./chunk-sq4w1e1g.js";import{He,Sn,ti}from"./chunk-e26pxzjj.js";import{wu,xu,Su,ku,Ps,Yp}from"./chunk-vxrhvrr9.js";import B from"fs";import w from"path";import O from"fs";import u from"path";var v=[72,96,128,144,152,192,384,512],S=[120,152,167,180],P=[16,32];async function M(n,t){let e={success:!0,generatedFiles:[],errors:[],warnings:[]},r=n.pwa?.icons;if(!r?.src)return e.errors.push("No source icon specified in pwa.icons.src"),e.success=!1,e;let o=u.isAbsolute(r.src)?r.src:u.resolve(process.cwd(),r.src);if(!await Bun.file(o).exists())return e.errors.push(`Source icon not found: ${o}`),e.success=!1,e;let a=u.resolve(t,r.outputDir||"pwa-icons");try{O.mkdirSync(a,{recursive:!0})}catch{return e.errors.push(`Failed to create output directory: ${a}`),e.success=!1,e}let s=r.sizes||v,l=r.generateWebP??!0,p=r.generateAppleIcons??!0;try{let c;try{c=await import("sharp")}catch{return e.errors.push(`sharp is not installed. Install it with: bun add sharp
3
+ Icon generation requires the sharp package for image processing.`),e.success=!1,e}let g=await c.default(o).metadata();if(g.width&&g.width<512)e.warnings.push(`Source icon is ${g.width}x${g.height}. Recommend using at least 512x512 for best quality.`);for(let i of s){let d=u.join(a,`icon-${i}x${i}.png`);if(await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(d),e.generatedFiles.push(d),l){let x=u.join(a,`icon-${i}x${i}.webp`);await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:90}).toFile(x),e.generatedFiles.push(x)}}if(p){for(let d of S){let x=u.join(a,`apple-touch-icon-${d}x${d}.png`);await c.default(o).resize(d,d,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(x),e.generatedFiles.push(x)}let i=u.join(a,"apple-touch-icon.png");await c.default(o).resize(180,180,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(i),e.generatedFiles.push(i)}for(let i of P){let d=u.join(a,`favicon-${i}x${i}.png`);await c.default(o).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(d),e.generatedFiles.push(d)}let f=512,y=u.join(a,`icon-maskable-${f}x${f}.png`),m=Math.floor(f*0.1),k=f-m*2;await c.default(o).resize(k,k,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).extend({top:m,bottom:m,left:m,right:m,background:{r:255,g:255,b:255,alpha:1}}).png().toFile(y),e.generatedFiles.push(y)}catch(c){let h=c instanceof Error?c.message:String(c);e.errors.push(`Icon generation failed: ${h}`),e.success=!1}return e}function N(n){let t=n.sizes||v,e=n.outputDir?`/${n.outputDir}`:"/pwa-icons",r=n.generateWebP??!0,o=n.generateAppleIcons??!0,a=[];for(let s of t)if(a.push(`${e}/icon-${s}x${s}.png`),r)a.push(`${e}/icon-${s}x${s}.webp`);if(o){a.push(`${e}/apple-touch-icon.png`);for(let s of S)a.push(`${e}/apple-touch-icon-${s}x${s}.png`)}for(let s of P)a.push(`${e}/favicon-${s}x${s}.png`);return a.push(`${e}/icon-maskable-512x512.png`),a}async function I(){try{return await import("sharp"),!0}catch{return!1}}function A(n,t,e,r){let o=[],a=r.join(" ");for(let s of n)if(o.push({src:`${t}/icon-${s}x${s}.png`,sizes:`${s}x${s}`,type:"image/png",purpose:a}),e)o.push({src:`${t}/icon-${s}x${s}.webp`,sizes:`${s}x${s}`,type:"image/webp",purpose:a});return o}function C(n){return n.map((t)=>({name:t.name,short_name:t.shortName,description:t.description,url:t.url,icons:t.icons?.map((e)=>({src:e.src,sizes:e.sizes,type:e.type}))}))}function T(n){let t=n.pwa?.shareTarget;if(!t?.enabled)return;let e={action:t.action||"/share",method:t.method||"POST",enctype:t.enctype||"multipart/form-data",params:{title:t.params?.title||"title",text:t.params?.text||"text",url:t.params?.url||"url"}};if(t.acceptFiles&&t.acceptFiles.length>0)e.params.files=t.acceptFiles.map((r)=>({name:r.name,accept:r.accept}));return e}function H(n){let t=n.pwa?.fileHandlers;if(!t?.enabled||!t.accept)return;let e=[{action:t.action||"/",accept:t.accept,launch_type:t.launchType||"single-client"}];if(t.icons)e[0].icons=t.icons.map((r)=>({src:r.src,sizes:r.sizes,type:r.type}));return e}function W(n){let t=n.pwa?.protocolHandlers;if(!t||t.length===0)return;return t.map((e)=>({protocol:e.protocol,url:e.url}))}function j(n){let t=n.pwa;if(!t?.enabled||!t.manifest)return null;let{manifest:e,icons:r}=t,o=r?.sizes||[72,96,128,144,152,192,384,512],a=r?.outputDir?`/${r.outputDir}`:"/pwa-icons",s=r?.generateWebP??!0,l=r?.purpose||["any","maskable"],p={name:e.name,short_name:e.shortName||e.name,description:e.description,start_url:e.startUrl||"/",display:e.display||"standalone",display_override:e.displayOverride,orientation:e.orientation,theme_color:e.themeColor,background_color:e.backgroundColor,scope:e.scope||"/",lang:e.lang,dir:e.dir,id:e.id,categories:e.categories,icons:A(o,a,s,l)};if(e.shortcuts&&e.shortcuts.length>0)p.shortcuts=C(e.shortcuts);if(e.screenshots&&e.screenshots.length>0)p.screenshots=e.screenshots.map((f)=>({src:f.src,sizes:f.sizes,type:f.type,label:f.label,form_factor:f.platform}));let c=T(n);if(c)p.share_target=c;let h=H(n);if(h)p.file_handlers=h;let g=W(n);if(g)p.protocol_handlers=g;if(e.launchHandler)p.launch_handler={client_mode:e.launchHandler};if(e.handleLinks)p.handle_links=e.handleLinks;if(e.edgeSidePanel?.enabled)p.edge_side_panel={preferred_width:e.edgeSidePanel.preferredWidth};return p}function _(n){let t=j(n);if(!t)return"";let e=JSON.parse(JSON.stringify(t));return JSON.stringify(e,null,2)}function q(n,t){return{...t,...n,shortcuts:n.shortcuts||t.shortcuts,screenshots:n.screenshots||t.screenshots,categories:n.categories||t.categories}}function D(n){let t=[],e=n.pwa;if(!e?.enabled)return t;let r=e.manifest;if(!r)return t.push("PWA manifest configuration is missing"),t;if(!r.name)t.push("Manifest name is required");let o=["fullscreen","standalone","minimal-ui","browser"];if(r.display&&!o.includes(r.display))t.push(`Invalid display mode: ${r.display}. Must be one of: ${o.join(", ")}`);let a=["any","natural","landscape","landscape-primary","landscape-secondary","portrait","portrait-primary","portrait-secondary"];if(r.orientation&&!a.includes(r.orientation))t.push(`Invalid orientation: ${r.orientation}`);let s=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;if(r.themeColor&&!s.test(r.themeColor))t.push(`Invalid theme color: ${r.themeColor}. Must be a valid hex color.`);if(r.backgroundColor&&!s.test(r.backgroundColor))t.push(`Invalid background color: ${r.backgroundColor}. Must be a valid hex color.`);if(e.shareTarget?.enabled){if(!e.shareTarget.action)t.push("Share target action URL is required")}if(e.fileHandlers?.enabled){if(!e.fileHandlers.accept||Object.keys(e.fileHandlers.accept).length===0)t.push("File handlers must specify accepted MIME types")}if(e.protocolHandlers)for(let l of e.protocolHandlers){if(!l.protocol)t.push("Protocol handler missing protocol");if(!l.url||!l.url.includes("%s"))t.push(`Protocol handler URL must contain %s placeholder: ${l.protocol}`)}return t}import z from"path";async function F(n){let t=n.pwa?.offline;if(!t?.enabled)return"";if(t.page){let e=z.isAbsolute(t.page)?t.page:z.resolve(process.cwd(),t.page);if(await Bun.file(e).exists())try{let{processDirectives:r}=await import("./chunk-k8b4fme9.js"),o=await Bun.file(e).text();return await r(o,{},e,n,new Set)}catch(r){console.warn(`[PWA] Failed to process custom offline page: ${r}`)}else console.warn(`[PWA] Custom offline page not found: ${e}`)}return E(n)}function E(n){let t=n.pwa?.offline,e=n.pwa?.manifest,r=t?.fallbackTitle||"You are offline",o=t?.fallbackMessage||"Please check your internet connection and try again.",a=e?.themeColor||"#4f46e5",s=e?.shortName||e?.name||"App";return`<!DOCTYPE html>
4
4
  <html lang="en">
5
5
  <head>
6
6
  <meta charset="UTF-8">
package/dist/ssg.js CHANGED
@@ -1,10 +1,10 @@
1
1
  // @bun
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(`
2
+ import"./chunk-374nhgyf.js";import{y,sc}from"./chunk-r0ys9aqa.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import{Et}from"./chunk-xw0cqb5m.js";import"./chunk-t6m5d64b.js";import"./chunk-bg6t69qq.js";import"./chunk-tenbwcts.js";import{wt,xt,St,kt,_t,Ct}from"./chunk-kypwg2ws.js";import{i}from"./chunk-1rgjy80j.js";import{ts}from"./chunk-ygb33q5w.js";import"./chunk-912r15hr.js";import"./chunk-0nt17nas.js";import{Ee,Xt,Jt}from"./chunk-ffwvbqkp.js";import"./chunk-58m0kfb3.js";import{h}from"./chunk-67v3rh14.js";import{gt,o}from"./chunk-dnbdxbkb.js";import"./chunk-n4qp4q2x.js";import"./chunk-pf25jb54.js";import"./chunk-51fqvchq.js";import"./chunk-dxcn65hq.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-cge9pgyb.js";import"./chunk-hx787tfa.js";import{q,ye}from"./chunk-fw12pvmr.js";import"./chunk-jgxzbthg.js";import"./chunk-0y2hkbc6.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
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
  })()
7
- `)(n)}catch(e){return console.error(`Error executing getStaticProps in ${a}:`,e),null}}function Mt(t){return/(?:^|[^\w$.])(?:export\s+)?(?:async\s+)?function\s+action\s*\(/.test(t)||/(?:^|[^\w$.])(?:export\s+)?(?:const|let|var)\s+action\s*=/.test(t)}async function ft(t,n,a={},s,l){let e=await Bun.file(t.filePath).text(),u=await Lt(t.filePath),f=await Ut(e,n,t.filePath),x={...u||{},...f||{},...a,params:n,$route:{path:t.pattern,params:n}},m=new Set,b=[],v=[],R={...l,...s.partialsDir?{partialsDir:s.partialsDir}:{},...s.componentsDir?{componentsDir:s.componentsDir}:{},debug:!1,cache:!1,autoShell:!0,onIncludeError:(D)=>{b.push(`${p.relative(process.cwd(),D.templatePath)}: ${D.message}
7
+ `)(n)}catch(e){return console.error(`Error executing getStaticProps in ${a}:`,e),null}}function Mt(t){return/(?:^|[^\w$.])(?:export\s+)?(?:async\s+)?function\s+action\s*\(/.test(t)||/(?:^|[^\w$.])(?:export\s+)?(?:const|let|var)\s+action\s*=/.test(t)}async function ft(t,n,a={},s,l){let e=await Bun.file(t.filePath).text(),u=await Lt(t.filePath),f=await Ut(e,n,t.filePath),x={...u||{},...f||{},...a,params:n,$route:{path:t.pattern,params:n}},m=new Set,b=[],v=[],R={...l,minifyClient:!0,...s.partialsDir?{partialsDir:s.partialsDir}:{},...s.componentsDir?{componentsDir:s.componentsDir}:{},debug:!1,cache:!1,autoShell:!0,onIncludeError:(D)=>{b.push(`${p.relative(process.cwd(),D.templatePath)}: ${D.message}
8
8
  resolved against partialsDir: ${D.partialsDir}`)},onServerScriptError:(D)=>{v.push(`${p.relative(process.cwd(),D.sourcePath)} (${D.kind}): ${D.message}`)}};if(Mt(e))console.warn(`Warning: ${t.pattern} exports a page action, which cannot run in a static build. Its form will submit to a file. Serve this route with the production server, or point the form's action at a route handler.`);let S=await o(e,x,t.filePath,R,m);for(let D of[t.filePath,...m])for(let F of Ee(D))m.add(F);if(Object.keys(n).length>0){let D=`<script>if(window.stx)window.stx._rp=${JSON.stringify(n)};else window.__stx_rp=${JSON.stringify(n)};</script>`;if(S.includes("</head>"))S=S.replace("</head>",`${D}
9
9
  </head>`);else S=`${D}
10
10
  ${S}`}if(S=await ye(S,{router:s.router}),S=await h(S),s.minify!==!1)return{html:Nt(S),dependencies:Array.from(m),includeFailures:b,serverScriptFailures:v};return{html:S,dependencies:Array.from(m),includeFailures:b,serverScriptFailures:v}}function Nt(t){let n=[],a=0,s=/(<script[^>]*>)([\s\S]*?)(<\/script>)/gi,l;while((l=s.exec(t))!==null){let u=t.slice(a,l.index);n.push(u.replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/\s+/g," ").replace(/>\s+</g,"><"));let f=l[1],x=l[2],m=l[3];x=x.replace(/([^:"\\'`])\/\/(?!\/)(?![*!])([^\n]*)/g,"$1"),n.push(f+x+m),a=l.index+l[0].length}let e=t.slice(a);return n.push(e.replace(/<!--(?!\[if)[\s\S]*?-->/g,"").replace(/\s+/g," ").replace(/>\s+</g,"><")),n.join("").trim()}function zt(t){let n=0;for(let a=0;a<t.length;a++){let s=t.charCodeAt(a);n=(n<<5)-n+s,n=n&n}return`"${Math.abs(n).toString(36)}"`}function Ht(t,n,a,s){if(a?.sitemap===!1)return!0;if(/<meta[^>]+name=["']robots["'][^>]+content=["'][^"']*noindex/i.test(n))return!0;return s.some((l)=>{if(l instanceof RegExp)return l.test(t);return l.endsWith("/")?t===l.slice(0,-1)||t.startsWith(l):t===l})}function Wt(t,n){return`<?xml version="1.0" encoding="UTF-8"?>
@@ -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-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",`
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-1x0pf3sw.js");try{R=w(await d(process.cwd()))}catch{}}let{prepareImageDelivery:S}=await import("./chunk-fndg9ar3.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-1x0pf3sw.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:
@@ -48,7 +48,7 @@ Set ssg.failOnIncludeError to false to build anyway.`);if(e.failOnServerScriptEr
48
48
  `)}
49
49
  Set ssg.failOnServerScriptError to false to build anyway.`);if(e.cache)F.set(g,P.filePath,I.dependencies,C)}let G;if(e.trailingSlash)G=p.join(e.outputDir,g,"index.html");else G=g==="/"?p.join(e.outputDir,"index.html"):p.join(e.outputDir,`${g}.html`);if(e.chunkIslands){let{html:I,chunks:A}=at(C,{integrity:e.integrityIslands,minify:e.minify});if(A.length>0){let B=p.join(e.outputDir,"_stx","islands");await k.promises.mkdir(B,{recursive:!0});for(let E of A){let N=p.join(B,`${E.hash}.js`);if(!await Bun.file(N).exists())await Bun.write(N,E.code);if(!f.has(E.hash)){f.add(E.hash);let L=Buffer.byteLength(E.code,"utf8");x+=L,m[E.hash]={bytes:L,file:`/_stx/islands/${E.hash}.js`}}}if(b[g]=A.map((E)=>E.hash),C=I,e.prefetchIslands)C=ot(C)}}if(await k.promises.mkdir(p.dirname(G),{recursive:!0}),await Bun.write(G,C),!Ht(g,C,O,e.sitemapExclude))M.push({loc:g,lastmod:new Date().toISOString().split("T")[0],priority:g==="/"?1:0.8});let st={route:g,outputPath:G,size:Buffer.byteLength(C,"utf8"),cached:it};if(et!==!1)st.revalidateAt=Date.now()+et*1000;u.pages.push(st),u.successCount++,await e.hooks.onPageEnd?.(g,C)}catch(T){u.failedCount++,u.errors.push({route:g,error:T}),await e.hooks.onError?.(T,g),console.error(`Error generating ${g}:`,T)}}));let Q=Xt();if(Q.length>0){let d=Q.map((w)=>`${w.filePath}: ${w.message}`).join(`
50
50
  `);throw Error(`Client script bundling failed:
51
- ${d}`)}if(e.cache)await F.save();if(e.generate404){let d=p.join(e.pagesDir,"404.stx");if(await Bun.file(d).exists()){let w=new Set,P={...a,debug:!1,cache:!1},g=await o(await Bun.file(d).text(),{},d,P,w);await Bun.write(p.join(e.outputDir,"404.html"),g)}else await Bun.write(p.join(e.outputDir,"404.html"),`<!DOCTYPE html>
51
+ ${d}`)}if(e.cache)await F.save();if(e.generate404){let d=p.join(e.pagesDir,"404.stx");if(await Bun.file(d).exists()){let w=new Set,P={...a,minifyClient:!0,debug:!1,cache:!1},g=await o(await Bun.file(d).text(),{},d,P,w);await Bun.write(p.join(e.outputDir,"404.html"),g)}else await Bun.write(p.join(e.outputDir,"404.html"),`<!DOCTYPE html>
52
52
  <html lang="en">
53
53
  <head>
54
54
  <meta charset="UTF-8">
@@ -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 ${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?`
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,minifyClient:!0,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,minifyClient:!0,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
@@ -351,6 +351,7 @@ export declare interface StxConfig {
351
351
  media?: Partial<MediaConfig>
352
352
  strict?: boolean | StrictModeConfig
353
353
  buildMode?: 'compile' | 'serve' | 'spa'
354
+ minifyClient?: boolean
354
355
  autoShell?: boolean
355
356
  outputDir?: string
356
357
  shell?: string | false
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/stx",
3
3
  "type": "module",
4
- "version": "0.2.685",
4
+ "version": "0.2.686",
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.685",
132
- "@stacksjs/sanitizer": "0.2.685",
131
+ "@stacksjs/desktop": "0.2.686",
132
+ "@stacksjs/sanitizer": "0.2.686",
133
133
  "@stacksjs/ts-i18n": "^0.1.11",
134
- "bun-plugin-stx": "0.2.685",
134
+ "bun-plugin-stx": "0.2.686",
135
135
  "bunfig": "^0.15.21",
136
- "stx-router": "0.2.685",
136
+ "stx-router": "0.2.686",
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{Ud,Wd}from"./chunk-jrche9k7.js";import"./chunk-6zzg889q.js";import"./chunk-r8cn9qhr.js";import"./chunk-374nhgyf.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Wd as clearStoreCache,Ud as getStoreScript};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Rs,ei,hu,yu,bu}from"./chunk-49c5v5fh.js";import"./chunk-6e60jp4a.js";export{yu as generateManifestLink,Rs as generatePwaTags,hu as generateSwRegistrationScript,bu as generateThemeColorMeta,ei as injectPwaTags};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ec,Tc}from"./chunk-4r8c96a0.js";import"./chunk-mf8yzpyy.js";import"./chunk-px7ryjd9.js";import"./chunk-xr9a0hcr.js";import"./chunk-km37yrk4.js";import"./chunk-gwqw8r2e.js";import"./chunk-58dv14c3.js";import"./chunk-gn98ha90.js";import"./chunk-nsvnxkyb.js";import"./chunk-5tbey00z.js";import"./chunk-xvnrm5c3.js";import"./chunk-bnggav14.js";import"./chunk-f4z9w4kc.js";import"./chunk-kgcwx6nt.js";import"./chunk-brftzqzj.js";import"./chunk-cjf01cp4.js";import"./chunk-3zbege39.js";import"./chunk-km6ggz8n.js";import"./chunk-pzxy40a2.js";import"./chunk-zhcb33s1.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-jrche9k7.js";import"./chunk-qz314za9.js";import"./chunk-ct0ee0fr.js";import"./chunk-w3q5czk5.js";import"./chunk-03xn8244.js";import"./chunk-rspe6qa5.js";import{Gt}from"./chunk-d0g4zndy.js";import"./chunk-6zzg889q.js";import"./chunk-r8cn9qhr.js";import"./chunk-374nhgyf.js";import{$e,o}from"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import{ye}from"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import{Zn,Qn}from"./chunk-fbdmsw5j.js";import{Jr,N,i}from"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import{g,De}from"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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,Gt 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{Ou}from"./chunk-px7ryjd9.js";import"./chunk-nsvnxkyb.js";import"./chunk-d0g4zndy.js";import"./chunk-r8cn9qhr.js";import"./chunk-4ht54p3j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Ou as startProductionServer};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{N,Nl,yo,i,R,Ep,Tp}from"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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{Iu}from"./chunk-mf8yzpyy.js";import"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-fbdmsw5j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Iu as startInteractive};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ws,qd,Kd}from"./chunk-qz314za9.js";import"./chunk-6zzg889q.js";import"./chunk-r8cn9qhr.js";import"./chunk-374nhgyf.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Kd as clearComposableCache,qd as getComposableScript,Ws as listComposableModules};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{jr,Gn,El}from"./chunk-qgs69nds.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import{$t}from"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{El as declareBareLoopHead,$t as parseLoopBinding,Gn as processLoops,jr as reportDeferredLoopWarnings};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{cd,zi,dl,ld,ud,dd,pd,fd,pl,fl,gd,md,hd,yd}from"./chunk-zhcb33s1.js";import"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-fbdmsw5j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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{Hc,td,Vc,Uc,nd,rd}from"./chunk-kgcwx6nt.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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{Qu}from"./chunk-bnggav14.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Qu as buildApp};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Un,o}from"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import{ye}from"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-fbdmsw5j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import{Pe,ys,bs}from"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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{qi,Ki,Gi,Xi,ip}from"./chunk-244tyyhx.js";import"./chunk-w3q5czk5.js";import"./chunk-03xn8244.js";import"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-fbdmsw5j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{qi as buildNative,ip as default,Ki as findCraftBinary,Xi as getAvailableFormats,Gi as getAvailableTargets};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Mc,$i,Lu,Lc,jc,ju,Bu}from"./chunk-gwqw8r2e.js";import"./chunk-qz314za9.js";import"./chunk-6zzg889q.js";import"./chunk-r8cn9qhr.js";import"./chunk-374nhgyf.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import{Rt,Wl}from"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.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{zu}from"./chunk-gn98ha90.js";import"./chunk-nsvnxkyb.js";import"./chunk-ct0ee0fr.js";import"./chunk-d0g4zndy.js";import"./chunk-r8cn9qhr.js";import"./chunk-4k3jx9mm.js";import"./chunk-fb84n8kz.js";import"./chunk-9bgb9n12.js";import"./chunk-qgs69nds.js";import"./chunk-e5kz0y03.js";import"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-7st0prz9.js";import"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-fbdmsw5j.js";import"./chunk-mxbp4vyy.js";import"./chunk-9wd31tc6.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-r7csb300.js";import"./chunk-kypwg2ws.js";import"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{zu as buildForProduction};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$l,Vr}from"./chunk-4rj9746b.js";import"./chunk-wt6f9pk9.js";import"./chunk-5t9ndqfm.js";import{ur}from"./chunk-t3e5tv4h.js";import"./chunk-8x34g2ad.js";import"./chunk-t6m5d64b.js";import{tt}from"./chunk-3tp7r57c.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{tt as freeIdentifiers,Vr as processComponents,$l as processESImports,ur as rendersAsElement};