@stacksjs/stx 0.2.84 → 0.2.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-shell.js +50 -50
- package/dist/build-mode-detector.js +95 -95
- package/dist/build-views.js +149 -149
- package/dist/build.js +37 -37
- package/dist/cli.js +51 -51
- package/dist/component-processing.js +16 -16
- package/dist/component-renderer.js +32 -32
- package/dist/components.js +95 -95
- package/dist/dev-server/index.js +36 -36
- package/dist/dev-server/serve-app.js +50 -50
- package/dist/dev-server/serve-file.js +50 -50
- package/dist/dev-server/serve-markdown.js +36 -36
- package/dist/dev-server/serve-multi.js +49 -49
- package/dist/dev-server.js +50 -50
- package/dist/docs.js +96 -96
- package/dist/dynamic-components.js +32 -32
- package/dist/includes.js +32 -32
- package/dist/index.js +50 -50
- package/dist/interactive.js +96 -96
- package/dist/lazy-loader.js +95 -95
- package/dist/plugin.js +44 -44
- package/dist/process.js +31 -31
- package/dist/production-builder.js +31 -31
- package/dist/production-server.js +31 -31
- package/dist/pwa/index.js +95 -95
- package/dist/pwa/offline.js +95 -95
- package/dist/pwa.js +84 -84
- package/dist/render.js +153 -153
- package/dist/serve.js +106 -106
- package/dist/site-builder/build.js +97 -97
- package/dist/site-builder/index.js +38 -38
- package/dist/ssg.js +13 -13
- package/dist/ssr.js +83 -83
- package/dist/story/cli.js +36 -36
- package/dist/story/commands/dev.js +36 -36
- package/dist/story/commands/index.js +36 -36
- package/dist/story/index.js +36 -36
- package/dist/story/renderer.js +96 -96
- package/dist/story/server.js +36 -36
- package/dist/story/visual-testing.js +96 -96
- package/dist/streaming.js +32 -32
- package/dist/template-compiler.js +24 -24
- package/dist/template-hydrator.js +110 -110
- package/dist/testing.js +95 -95
- package/dist/utils.js +32 -32
- package/dist/variable-extractor.js +11 -11
- package/dist/web-components.js +95 -95
- package/package.json +7 -5
|
@@ -1117,7 +1117,7 @@ ${H}
|
|
|
1117
1117
|
filter: blur(0);
|
|
1118
1118
|
transform: scale(1);
|
|
1119
1119
|
}
|
|
1120
|
-
`.trim();$5=new Map});import{createHash as D3}from"crypto";import{readFile as cG,stat as B8}from"fs/promises";async function T0($){try{let Z=await cG($);return D3("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function TL($){return D3("sha256").update($).digest("hex").slice(0,16)}function _8($){return D3("sha256").update($).digest("hex").slice(0,16)}function N$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${_8($)}-${_8(Y)}`}async function E3($){try{return(await B8($)).mtimeMs}catch{return 0}}async function R0($){try{return await B8($),!0}catch{return!1}}var k1=()=>{};import{mkdir as iG,readFile as H8,writeFile as nG,readdir as O8,rm as k3,stat as oG}from"fs/promises";import{join as Z5,dirname as sG}from"path";async function rG($){try{await iG($,{recursive:!0})}catch{}}function L8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function j8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await E3(Z)!==$.srcMtime)return!1;return!0}async function T$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=N$($,Z),Q=a0.get(J);if(Q){if(await j8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;a0.delete(J)}let G=L8(X.directory,J,Y);if(await R0(G))try{let K=await H8(G,"utf-8"),q=JSON.parse(K);if(await j8(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),a0.set(J,q),q.data}catch{}return null}async function M$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=N$($,Z),G=await T0($),K=await E3($),q={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:N$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};a0.set(Q,q);let z=L8(J.directory,Q,X);try{await rG(sG(z)),await nG(z,JSON.stringify(q,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function kL($,Z,Y=Y5){for(let[X,J]of a0.entries())if(J.src===$)a0.delete(X)}async function I$($,Z=Y5){if($==="all")a0.clear();else a0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await k3(J,{recursive:!0,force:!0})}catch{}}}async function SL($=Y5){let Z={memoryEntries:a0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await O8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await oG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function bL($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await O8(J);for(let G of Q){let K=Z5(J,G);try{let q=await H8(K,"utf-8"),z=JSON.parse(q);if(Date.now()-z.createdAt>Y)await k3(K),a0.delete(z.key),Z++}catch{await k3(K).catch(()=>{}),Z++}}}catch{}}return Z}var a0,Y5;var S3=b(()=>{k1();a0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class E${config;constructor($={}){this.config={...aG,...$}}async get($,Z){return T$($,Z,"image",this.config)}async set($,Z,Y){return M$($,Z,Y,"image",this.config)}async clear(){return I$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function b3($){if(!D$)D$=new E$($);else if($)D$.updateConfig($);return D$}async function k$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return b3(X).get($,Z)}async function S$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return b3(J).set($,Z,Y)}async function F8(){return b3().clear()}var aG,D$=null;var y3=b(()=>{S3();aG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as tG,basename as eG,extname as $K,join as ZK}from"path";import{mkdir as YK}from"fs/promises";async function C3(){try{return await import("ts-images")}catch{return null}}function V8($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function XK($,Z){let Y=Z?V8(Z):V8("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function w8($,Z,Y){let X=await C3();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await k$($,Z,Y);if(J)return J;try{let Q=tG($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=XK(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await YK(K,{recursive:!0});let z=await T0(Q),U=eG($,$K($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},B=null;if(Z.transformations&&Z.transformations.length>0)B=await P3(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${z}.${j}`,F=ZK(K,L);try{let O=await X.optimizeImage({input:B||Q,output:F,format:j,quality:H.quality,progressive:H.progressive});if(O){if(_.variants.push({path:F,url:`${q}/${L}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!_.originalWidth&&O.width)_.originalWidth=O.width,_.originalHeight=O.height}}catch(O){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);_.placeholder=j.dataUrl}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(Q,{strategy:"dominant-color"});_.dominantColor=j.dominantColor}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${j}`)}return await S$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function A8($,Z,Y,X){let J=await C3();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function P3($,Z,Y){let X=Y||await C3();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var R8=b(()=>{k1();y3()});import{resolve as JK,basename as QK,extname as GK,join as KK}from"path";import{mkdir as qK}from"fs/promises";async function zK(){try{return await import("ts-images")}catch{return null}}async function v3($,Z,Y){let X=await zK();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=JK($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||UK,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await qK(K,{recursive:!0});let z=await T0(J),U=QK($,GK($)),W=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let j of G){_.byFormat[j]=[];let H=[];for(let L of Q){let F=`${U}-${L}w-${z}.${j}`,O=KK(K,F),V=`${q}/${F}`;try{let A=W[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||WK(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function WK($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function N8($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}async function cL($,Z,Y){let X=[];for(let J of Z){let Q=await v3(J.src,{responsiveWidths:J.widths},Y);if(Q){for(let[G,K]of Object.entries(Q.srcsets))if(K)X.push({media:J.media,srcset:K,type:_K(G)})}}return X}function _K($){switch($){case"avif":return"image/avif";case"webp":return"image/webp";case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";default:return"image/jpeg"}}var UK;var T8=b(()=>{k1();UK=[320,480,640,768,1024,1280,1536,1920]});var M8={};l(M8,{setCachedImageResult:()=>S$,processImage:()=>w8,optimizeImage:()=>A8,getCachedImageResult:()=>k$,generateSrcset:()=>N8,generateResponsiveVariants:()=>v3,clearImageCache:()=>F8,applyTransformations:()=>P3,ImageProcessorCache:()=>E$});var I8=b(()=>{R8();T8();y3()});async function BK(){try{return await Promise.resolve().then(() => (I8(),M8))}catch($){if(!D8)console.warn("[stx-media] Image processor not available, some features disabled:",$),D8=!0;return null}}async function x5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return FK(X,Y)}if(Y.processedResult?.processed)return h3($,Y.processedResult,Z);if(Y.responsiveVariants)return b8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=E1,dpr:U,formats:W=e1,quality:_=x3,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":y$,decoding:V=b$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return OK($);let y,C,m=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{y=await U8(J,{strategy:j,...H}),C=z8(m,y,H)}catch{}let g=U!==void 0&&G!==void 0,u;if(g)u=HK($,m,y,Z);else u=await jK($,m,y,Z);let s;if(F){let y0=W.includes("webp")?"webp":W[0],D0=v5(J,z,{...B,q:_},y0),J0=typeof q==="object"?R3(q):q||"100vw";s=`<link rel="preload" as="image" imagesrcset="${D0}" imagesizes="${J0}" />`}let N0=[];if(!E8&&j!=="none")N0.push(M3),E8=!0;if(C)N0.push(C);let $1=L?S8(m):void 0;return{html:u,preloadLink:s,css:N0.length>0?N0.join(`
|
|
1120
|
+
`.trim();$5=new Map});import{createHash as D3}from"crypto";import{readFile as cG,stat as B8}from"fs/promises";async function M0($){try{let Z=await cG($);return D3("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function TL($){return D3("sha256").update($).digest("hex").slice(0,16)}function _8($){return D3("sha256").update($).digest("hex").slice(0,16)}function N$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${_8($)}-${_8(Y)}`}async function E3($){try{return(await B8($)).mtimeMs}catch{return 0}}async function R0($){try{return await B8($),!0}catch{return!1}}var k1=()=>{};import{mkdir as iG,readFile as H8,writeFile as nG,readdir as O8,rm as k3,stat as oG}from"fs/promises";import{join as Z5,dirname as sG}from"path";async function rG($){try{await iG($,{recursive:!0})}catch{}}function L8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function j8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await E3(Z)!==$.srcMtime)return!1;return!0}async function T$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=N$($,Z),Q=a0.get(J);if(Q){if(await j8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;a0.delete(J)}let G=L8(X.directory,J,Y);if(await R0(G))try{let K=await H8(G,"utf-8"),q=JSON.parse(K);if(await j8(q,$,X.maxAge))return q.lastAccessedAt=Date.now(),a0.set(J,q),q.data}catch{}return null}async function M$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=N$($,Z),G=await M0($),K=await E3($),q={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:N$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};a0.set(Q,q);let z=L8(J.directory,Q,X);try{await rG(sG(z)),await nG(z,JSON.stringify(q,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function kL($,Z,Y=Y5){for(let[X,J]of a0.entries())if(J.src===$)a0.delete(X)}async function I$($,Z=Y5){if($==="all")a0.clear();else a0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await k3(J,{recursive:!0,force:!0})}catch{}}}async function SL($=Y5){let Z={memoryEntries:a0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await O8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await oG(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function bL($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await O8(J);for(let G of Q){let K=Z5(J,G);try{let q=await H8(K,"utf-8"),z=JSON.parse(q);if(Date.now()-z.createdAt>Y)await k3(K),a0.delete(z.key),Z++}catch{await k3(K).catch(()=>{}),Z++}}}catch{}}return Z}var a0,Y5;var S3=b(()=>{k1();a0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class E${config;constructor($={}){this.config={...aG,...$}}async get($,Z){return T$($,Z,"image",this.config)}async set($,Z,Y){return M$($,Z,Y,"image",this.config)}async clear(){return I$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function b3($){if(!D$)D$=new E$($);else if($)D$.updateConfig($);return D$}async function k$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return b3(X).get($,Z)}async function S$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return b3(J).set($,Z,Y)}async function F8(){return b3().clear()}var aG,D$=null;var y3=b(()=>{S3();aG={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as tG,basename as eG,extname as $K,join as ZK}from"path";import{mkdir as YK}from"fs/promises";async function C3(){try{return await import("ts-images")}catch{return null}}function V8($){switch($){case"quality":return{jpeg:{quality:90,mozjpeg:!0,progressive:!0},png:{compressionLevel:6,palette:!1},webp:{quality:90,effort:6,smartSubsample:!0},avif:{quality:85,effort:6}};case"performance":return{jpeg:{quality:70,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!0},webp:{quality:70,effort:4,smartSubsample:!0},avif:{quality:60,effort:2}};case"web":default:return{jpeg:{quality:82,mozjpeg:!0,progressive:!0},png:{compressionLevel:8,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4}}}}function XK($,Z){let Y=Z?V8(Z):V8("web"),X=$.formatQuality||{};return{jpeg:{...Y.jpeg,...X.jpeg},png:{...Y.png,...X.png},webp:{...Y.webp,...X.webp},avif:{...Y.avif,...X.avif}}}async function w8($,Z,Y){let X=await C3();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await k$($,Z,Y);if(J)return J;try{let Q=tG($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=XK(Y,Z.preset),K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await YK(K,{recursive:!0});let z=await M0(Q),U=eG($,$K($)),W=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:z},B=null;if(Z.transformations&&Z.transformations.length>0)B=await P3(Q,Z.transformations,X);for(let j of W){let H=G[j]||{},L=`${U}-${z}.${j}`,F=ZK(K,L);try{let O=await X.optimizeImage({input:B||Q,output:F,format:j,quality:H.quality,progressive:H.progressive});if(O){if(_.variants.push({path:F,url:`${q}/${L}`,width:O.width||0,height:O.height||0,format:j,size:O.outputSize||0}),!_.originalWidth&&O.width)_.originalWidth=O.width,_.originalHeight=O.height}}catch(O){_.errors=_.errors||[],_.errors.push(`Failed to optimize ${j}: ${O}`)}}if(Z.embedThumbhash||Z.placeholder==="thumbhash")try{let j=await X.generateThumbHash(Q);_.placeholder=j.dataUrl}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to generate thumbhash: ${j}`)}if(Z.useDominantColor)try{let j=await X.generatePlaceholder(Q,{strategy:"dominant-color"});_.dominantColor=j.dominantColor}catch(j){_.errors=_.errors||[],_.errors.push(`Failed to extract dominant color: ${j}`)}return await S$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function A8($,Z,Y,X){let J=await C3();if(!J)return{success:!1,error:"ts-images not installed"};try{return{success:!0,size:(await J.optimizeImage({input:$,output:X,format:Z,quality:Y}))?.outputSize}}catch(Q){return{success:!1,error:String(Q)}}}async function P3($,Z,Y){let X=Y||await C3();if(!X)return console.warn("[stx-media] ts-images not installed, skipping transformations"),null;try{let J=await X.decode($);for(let Q of Z){let G=Q.options||{};switch(Q.type){case"resize":if(G.width||G.height)J=await X.resize(J,{width:G.width,height:G.height,fit:G.fit});break;case"blur":if(G.sigma!==void 0)J=await X.blur(J,G.sigma);break;case"sharpen":if(G.amount!==void 0)J=await X.sharpen(J,G.amount);break;case"grayscale":J=await X.grayscale(J);break;case"rotate":if(G.angle!==void 0)J=await X.rotate(J,G.angle);break;case"flip":J=await X.flip(J);break;case"flop":J=await X.flop(J);break;case"brightness":if(G.value!==void 0)J=await X.brightness(J,G.value);break;case"contrast":if(G.value!==void 0)J=await X.contrast(J,G.value);break;case"saturation":if(G.value!==void 0)J=await X.saturation(J,G.value);break}}return await X.encode(J,"png")}catch(J){return console.error(`[stx-media] Transformation failed: ${J}`),null}}var R8=b(()=>{k1();y3()});import{resolve as JK,basename as QK,extname as GK,join as KK}from"path";import{mkdir as qK}from"fs/promises";async function zK(){try{return await import("ts-images")}catch{return null}}async function v3($,Z,Y){let X=await zK();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=JK($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||UK,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",q=Y.baseUrl||"/images";await qK(K,{recursive:!0});let z=await M0(J),U=QK($,GK($)),W=Y.formatQuality||{jpeg:{quality:82},png:{quality:80},webp:{quality:82},avif:{quality:75}},_={src:$,byFormat:{},srcsets:{}};for(let j of G){_.byFormat[j]=[];let H=[];for(let L of Q){let F=`${U}-${L}w-${z}.${j}`,O=KK(K,F),V=`${q}/${F}`;try{let A=W[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||WK(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function WK($){let Z=[...$].sort((X,J)=>X-J),Y=[];for(let X=0;X<Z.length-1;X++){let J=Z[X];Y.push(`(max-width: ${J}px) ${J}px`)}return Y.push(`${Z[Z.length-1]}px`),Y.join(", ")}function N8($,Z="width"){if(!$||$.length===0)return"";if(Z==="dpr")return $.filter((Y)=>Y.dpr).map((Y)=>`${Y.url} ${Y.dpr}x`).join(", ");return $.map((Y)=>`${Y.url} ${Y.width}w`).join(", ")}async function cL($,Z,Y){let X=[];for(let J of Z){let Q=await v3(J.src,{responsiveWidths:J.widths},Y);if(Q){for(let[G,K]of Object.entries(Q.srcsets))if(K)X.push({media:J.media,srcset:K,type:_K(G)})}}return X}function _K($){switch($){case"avif":return"image/avif";case"webp":return"image/webp";case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";default:return"image/jpeg"}}var UK;var T8=b(()=>{k1();UK=[320,480,640,768,1024,1280,1536,1920]});var M8={};l(M8,{setCachedImageResult:()=>S$,processImage:()=>w8,optimizeImage:()=>A8,getCachedImageResult:()=>k$,generateSrcset:()=>N8,generateResponsiveVariants:()=>v3,clearImageCache:()=>F8,applyTransformations:()=>P3,ImageProcessorCache:()=>E$});var I8=b(()=>{R8();T8();y3()});async function BK(){try{return await Promise.resolve().then(() => (I8(),M8))}catch($){if(!D8)console.warn("[stx-media] Image processor not available, some features disabled:",$),D8=!0;return null}}async function x5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return FK(X,Y)}if(Y.processedResult?.processed)return h3($,Y.processedResult,Z);if(Y.responsiveVariants)return b8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=E1,dpr:U,formats:W=e1,quality:_=x3,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":y$,decoding:V=b$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,I=$.style,D=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return OK($);let y,P,m=D||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{y=await U8(J,{strategy:j,...H}),P=z8(m,y,H)}catch{}let g=U!==void 0&&G!==void 0,u;if(g)u=HK($,m,y,Z);else u=await jK($,m,y,Z);let s;if(F){let y0=W.includes("webp")?"webp":W[0],E0=v5(J,z,{...B,q:_},y0),J0=typeof q==="object"?R3(q):q||"100vw";s=`<link rel="preload" as="image" imagesrcset="${E0}" imagesizes="${J0}" />`}let N0=[];if(!E8&&j!=="none")N0.push(M3),E8=!0;if(P)N0.push(P);let $1=L?S8(m):void 0;return{html:u,preloadLink:s,css:N0.length>0?N0.join(`
|
|
1121
1121
|
`):void 0,script:$1}}async function jK($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:q,widths:z=E1,formats:U=e1,quality:W=x3,params:_={},lazy:B=!0,priority:j=!1,loading:H=j?"eager":y$,decoding:L=b$,fetchpriority:F,objectFit:O,objectPosition:V,crossorigin:A,referrerpolicy:w}=$,R=$.class,N=$.style,M=$.data||{},T=typeof q==="object"?R3(q):q||"100vw",I=[];for(let k of U){let S=v5(J,z,{..._,q:W},k),y=N3(k);if(B&&!j)I.push(` <source type="${y}" data-srcset="${S}" data-sizes="${T}" />`);else I.push(` <source type="${y}" srcset="${S}" sizes="${T}" />`)}let D=f3({src:z1(J,{..._,q:W}),alt:Q,width:G,height:K,loading:j?void 0:H,decoding:L,fetchpriority:j?"high":F,objectFit:O,objectPosition:V,crossorigin:A,referrerpolicy:w,className:k8(R,Y),style:g3(N,O,V,Y),lazy:B&&!j,data:M}),E;if(Y){let k=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${k}">
|
|
1122
1122
|
<picture>
|
|
1123
1123
|
${I.join(`
|
|
@@ -1167,7 +1167,7 @@ ${I.join(`
|
|
|
1167
1167
|
|
|
1168
1168
|
observer.observe(container);
|
|
1169
1169
|
})();
|
|
1170
|
-
`.trim()}function LK($){let Z=$.match(/<Img\s+([^>]*?)\/?>/);if(!Z)return null;let Y=Z[1],X={},J=/(:?)(\w+)(?:=(?:"([^"]*)"|'([^']*)'|\{([^}]+)\}))?/g,Q;while((Q=J.exec(Y))!==null){let[,G,K,q,z,U]=Q,W=q??z??U??!0;if(G===":"&&typeof W==="string")try{X[K]=JSON.parse(W)}catch{X[K]=W}else switch(K){case"src":X.src=String(W);break;case"alt":X.alt=String(W);break;case"width":X.width=Number(W)||W;break;case"height":X.height=Number(W)||W;break;case"sizes":X.sizes=String(W);break;case"quality":X.quality=Number(W);break;case"placeholder":X.placeholder=W;break;case"lazy":X.lazy=W===!0||W==="true";break;case"priority":X.priority=W===!0||W==="true";break;case"class":X.class=String(W);break;case"style":X.style=String(W);break;case"id":X.id=String(W);break;case"loading":X.loading=W;break;case"decoding":X.decoding=W;break;case"fetchpriority":X.fetchpriority=W;break;case"objectFit":X.objectFit=W;break;case"objectPosition":X.objectPosition=String(W);break;case"crossorigin":X.crossorigin=W;break}}if(!X.src||!X.alt)return null;return X}async function tL($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],q;while((q=Y.exec($))!==null)K.push({match:q[0],index:q.index});for(let z=K.length-1;z>=0;z--){let{match:U}=K[z],W=LK(U);if(W){let _=await x5(W,Z);if(G=G.replace(U,_.html),_.preloadLink)X.push(_.preloadLink);if(_.css)J.push(_.css);if(_.script)Q.push(_.script)}}return{html:G,preloadLinks:X,styles:J,scripts:Q}}async function FK($,Z){let Y=await BK();if(!Y)return x5({...$,process:!1},Z);let X=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let Q=await Y.generateResponsiveVariants($.src,$,X);if(Q)return b8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return h3($,Q,Z)}return x5({...$,process:!1},Z)}async function h3($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:q,objectPosition:z,crossorigin:U,referrerpolicy:W}=$,_=$.class,B=$.style,j=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,H=$.data||{},L=Z.variants||[],F=L.find((
|
|
1170
|
+
`.trim()}function LK($){let Z=$.match(/<Img\s+([^>]*?)\/?>/);if(!Z)return null;let Y=Z[1],X={},J=/(:?)(\w+)(?:=(?:"([^"]*)"|'([^']*)'|\{([^}]+)\}))?/g,Q;while((Q=J.exec(Y))!==null){let[,G,K,q,z,U]=Q,W=q??z??U??!0;if(G===":"&&typeof W==="string")try{X[K]=JSON.parse(W)}catch{X[K]=W}else switch(K){case"src":X.src=String(W);break;case"alt":X.alt=String(W);break;case"width":X.width=Number(W)||W;break;case"height":X.height=Number(W)||W;break;case"sizes":X.sizes=String(W);break;case"quality":X.quality=Number(W);break;case"placeholder":X.placeholder=W;break;case"lazy":X.lazy=W===!0||W==="true";break;case"priority":X.priority=W===!0||W==="true";break;case"class":X.class=String(W);break;case"style":X.style=String(W);break;case"id":X.id=String(W);break;case"loading":X.loading=W;break;case"decoding":X.decoding=W;break;case"fetchpriority":X.fetchpriority=W;break;case"objectFit":X.objectFit=W;break;case"objectPosition":X.objectPosition=String(W);break;case"crossorigin":X.crossorigin=W;break}}if(!X.src||!X.alt)return null;return X}async function tL($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],q;while((q=Y.exec($))!==null)K.push({match:q[0],index:q.index});for(let z=K.length-1;z>=0;z--){let{match:U}=K[z],W=LK(U);if(W){let _=await x5(W,Z);if(G=G.replace(U,_.html),_.preloadLink)X.push(_.preloadLink);if(_.css)J.push(_.css);if(_.script)Q.push(_.script)}}return{html:G,preloadLinks:X,styles:J,scripts:Q}}async function FK($,Z){let Y=await BK();if(!Y)return x5({...$,process:!1},Z);let X=Z.tsImagesConfig;if($.responsiveWidths&&$.responsiveWidths.length>0||$.widths&&$.widths.length>0||!$.width&&!$.dpr){let Q=await Y.generateResponsiveVariants($.src,$,X);if(Q)return b8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return h3($,Q,Z)}return x5({...$,process:!1},Z)}async function h3($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:q,objectPosition:z,crossorigin:U,referrerpolicy:W}=$,_=$.class,B=$.style,j=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,H=$.data||{},L=Z.variants||[],F=L.find((P)=>P.format==="jpeg")||L.find((P)=>P.format==="webp")||L[0],O=F?.url||$.src,V=L.filter((P)=>P.format===(F?.format||"jpeg")).map((P)=>`${P.url} ${P.width}w`).join(", "),A=new Map;for(let P of L){if(!A.has(P.format))A.set(P.format,[]);A.get(P.format).push(P)}let w=[],R=["avif","webp","jpeg","png"];for(let P of R){let m=A.get(P);if(m&&m.length>0){let g=m.map((s)=>`${s.url} ${s.width}w`).join(", "),u=N3(P);if(G&&!K)w.push(` <source type="${u}" data-srcset="${g}" />`);else w.push(` <source type="${u}" srcset="${g}" />`)}}let N=[];if(G&&!K){if(N.push(`data-src="${m0(O)}"`),N.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),V)N.push(`data-srcset="${V}"`)}else if(N.push(`src="${m0(O)}"`),V)N.push(`srcset="${V}"`);N.push(`alt="${m0(X)}"`);let M=J||Z.originalWidth,T=Q||Z.originalHeight;if(M)N.push(`width="${M}"`);if(T)N.push(`height="${T}"`);if(!K)N.push(`loading="${G?"lazy":"eager"}"`);if(N.push('decoding="async"'),K)N.push('fetchpriority="high"');if(U)N.push(`crossorigin="${U}"`);if(W)N.push(`referrerpolicy="${W}"`);let I=[];if(q)I.push(`object-fit: ${q}`);if(z)I.push(`object-position: ${z}`);if(Z.placeholder&&G)I.push("opacity: 0; transition: opacity 300ms ease-out");if(B)I.push(B);if(I.length>0)N.push(`style="${I.join("; ")}"`);let D=[];if(_)D.push(_);if(Z.placeholder)D.push("stx-img-blur");if(D.length>0)N.push(`class="${D.join(" ")}"`);if(G&&!K)N.push("data-stx-lazy");for(let[P,m]of Object.entries(H))N.push(`data-${P}="${m0(m)}"`);let E;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let P=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;E=`<div id="${j}" class="stx-img-placeholder" style="${P}">
|
|
1171
1171
|
<picture>
|
|
1172
1172
|
${w.join(`
|
|
1173
1173
|
`)}
|
|
@@ -1181,8 +1181,8 @@ ${w.join(`
|
|
|
1181
1181
|
`):void 0,script:S}}async function b8($,Z,Y){let X={src:Z.src,processed:!0,variants:[],placeholder:Z.placeholder?.dataURL,originalWidth:Z.placeholder?.width,originalHeight:Z.placeholder?.height};for(let[J,Q]of Object.entries(Z.byFormat))if(Q)X.variants.push(...Q);return h3($,X,Y)}var D8=!1,x3=80,b$="async",y$="lazy",E8=!1;var y8=b(()=>{T3();W8()});function VK(){return B0({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,Y,X)=>{let{src:J,alt:Q,options:G}=wK($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||E1,formats:G.formats||e1,quality:G.quality,sizes:G.sizes,dpr:G.dpr,params:G.params,placeholder:G.placeholder,placeholderOptions:G.placeholderOptions,lazy:G.lazy!==!1,priority:G.priority||!1,loading:G.loading,decoding:G.decoding,fetchpriority:G.fetchpriority,objectFit:G.objectFit,objectPosition:G.objectPosition,class:G.class,style:G.style,id:G.id,width:G.width,height:G.height},q=Y.__isDev||!1,z=await x5(K,{isDev:q}),U=z.html;if(z.preloadLink)U=z.preloadLink+`
|
|
1182
1182
|
`+U;if(z.css)U+=`
|
|
1183
1183
|
<style>${z.css}</style>`;if(z.script)U+=`
|
|
1184
|
-
<script>${z.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function wK($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=AK(X),Q=d3(J[0],Y)||"",G=d3(J[1],Y)||"",K={};if(J[2]){let q=d3(J[2],Y);if(typeof q==="object"&&q!==null)K=q;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function AK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function d3($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var C8;var P8=b(()=>{_3();y8();T3();C8=VK()});class P${config;constructor($={}){this.config={...RK,...$}}async get($,Z){return T$($,Z,"video",this.config)}async set($,Z,Y){return M$($,Z,Y,"video",this.config)}async clear(){return I$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function m3($){if(!C$)C$=new P$($);else if($)C$.updateConfig($);return C$}async function v$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return m3(X).get($,Z)}async function x$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return m3(J).set($,Z,Y)}async function v8(){return m3().clear()}var RK,C$=null;var u3=b(()=>{S3();RK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as p3,basename as l3,extname as c3,join as f$}from"path";import{mkdir as i3}from"fs/promises";async function n3(){try{return await import("ts-videos")}catch{return null}}async function g$($,Z,Y,X){let J=await n3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=p3($);if(!await R0(Q))return null;await i3(Y,{recursive:!0});let G=await
|
|
1185
|
-
`)}async function u$($,Z,Y,X,J){let Q=await u8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=g8($);if(!await R0(G))return null;let K=await
|
|
1184
|
+
<script>${z.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function wK($,Z,Y){if(Z.src)return{src:String(Z.src),alt:String(Z.alt||""),options:Z.options||{}};let X=$.trim();if(X.startsWith("@img(")||X.startsWith("("))X=X.replace(/^@img\(/,"").replace(/^\(/,"").replace(/\)$/,"");let J=AK(X),Q=d3(J[0],Y)||"",G=d3(J[1],Y)||"",K={};if(J[2]){let q=d3(J[2],Y);if(typeof q==="object"&&q!==null)K=q;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function AK($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let q=$[K],z=K>0?$[K-1]:"";if((q==='"'||q==="'"||q==="`")&&z!=="\\"){if(!X)X=!0,J=q;else if(q===J)X=!1,J="";else Y+=q;continue}if(!X){if(q==="{")Q++;if(q==="}")Q--;if(q==="[")G++;if(q==="]")G--;if(q===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=q}if(Y.trim())Z.push(Y.trim());return Z}function d3($,Z){if(typeof $!=="string")return $;let Y=$.trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))return Y.slice(1,-1);if(!Y.startsWith("/")&&!Y.startsWith(".")&&!Y.startsWith("http")&&!Y.startsWith("{")){let X=Z[Y];if(X!==void 0)return X}if(Y.startsWith("{")||Y.startsWith("["))try{return JSON.parse(Y)}catch{}return Y}var C8;var P8=b(()=>{_3();y8();T3();C8=VK()});class P${config;constructor($={}){this.config={...RK,...$}}async get($,Z){return T$($,Z,"video",this.config)}async set($,Z,Y){return M$($,Z,Y,"video",this.config)}async clear(){return I$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function m3($){if(!C$)C$=new P$($);else if($)C$.updateConfig($);return C$}async function v$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return m3(X).get($,Z)}async function x$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return m3(J).set($,Z,Y)}async function v8(){return m3().clear()}var RK,C$=null;var u3=b(()=>{S3();RK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as p3,basename as l3,extname as c3,join as f$}from"path";import{mkdir as i3}from"fs/promises";async function n3(){try{return await import("ts-videos")}catch{return null}}async function g$($,Z,Y,X){let J=await n3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=p3($);if(!await R0(Q))return null;await i3(Y,{recursive:!0});let G=await M0(Q),K=l3($,c3($)),q=Z.format||"webp",z=Z.timestamp||0,U=`${K}-poster-${G}.${q}`,W=f$(Y,U),_=await J.extractThumbnails(Q,{timestamps:[z],width:Z.width||1280,height:Z.height,format:q,quality:Z.quality||85,outputDir:Y,outputPattern:U.replace(`.${q}`,"")});if(_&&_.length>0){let B=_[0];return{path:W,url:`${X}/${U}`,width:B.width||Z.width||1280,height:B.height||720,timestamp:z,size:B.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function h$($,Z,Y,X){let J=await n3();if(!J)return[];try{let Q=p3($);if(!await R0(Q))return[];await i3(Y,{recursive:!0});let G=await M0(Q),K=l3($,c3($)),q=Z.format||"webp",W=(await new J.Input(Q).getInfo()).duration||60,_=Z.count||10,B=Z.interval||W/_,j=[];for(let L=0;L<_&&L*B<W;L++)j.push(L*B);let H=await J.extractThumbnails(Q,{timestamps:j,width:Z.width||320,format:q,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((L,F)=>({path:L.path||f$(Y,`${K}-thumb-${G}-${F}.${q}`),url:`${X}/${K}-thumb-${G}-${F}.${q}`,width:L.width||Z.width||320,height:L.height||180,timestamp:j[F],size:L.size||0}));return[]}catch(Q){return console.warn(`[stx-media] Failed to generate thumbnails: ${Q}`),[]}}async function x8($,Z,Y,X){let J=await n3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=p3($);if(!await R0(Q))return null;await i3(Y,{recursive:!0});let G=await M0(Q),K=l3($,c3($)),U=(await new J.Input(Q).getInfo()).duration||60,W=Z.columns||10,_=Z.interval||5,B=Z.thumbnailWidth||160,j=Z.thumbnailHeight||90,H=Z.format||"jpeg",L=Math.ceil(U/_),F=Math.ceil(L/W),O=`${K}-sprite-${G}.${H}`,V=f$(Y,O),A=[];for(let R=0;R<L;R++)A.push(R*_);let w=await J.extractThumbnails(Q,{timestamps:A,width:B,height:j,format:H,quality:Z.quality||70,outputDir:f$(Y,".temp")});if(!w||w.length===0)return null;try{let R=await import("ts-images"),N=W*B,M=F*j,T=await R.createSprite({images:w.map((I)=>I.path),columns:W,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${O}`,path:V,columns:W,rows:F,thumbnailWidth:B,thumbnailHeight:j,interval:_,totalFrames:L}}catch{return console.warn("[stx-media] ts-images not installed, sprite sheet generation skipped"),null}}catch(Q){return console.warn(`[stx-media] Failed to generate sprite sheet: ${Q}`),null}}var o3=b(()=>{k1()});import{resolve as g8,basename as h8,extname as d8,join as S1}from"path";import{mkdir as d$,writeFile as m8}from"fs/promises";async function u8(){try{return await import("ts-videos")}catch{return null}}async function m$($,Z,Y,X,J){let Q=await u8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=g8($);if(!await R0(G))return null;let K=await M0(G),q=h8($,d8($)),z=S1(Y,`${q}-${K}-hls`);await d$(z,{recursive:!0});let U=Z.length>0?Z:p8,W=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],L=0;for(let V of U){let A=S1(z,V.label);await d$(A,{recursive:!0});let w=`${V.label}.m3u8`,R=S1(A,w);try{let N=await Q.generateHLS(G,{outputDir:A,segmentDuration:W,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(N)H.push({quality:V,url:`${X}/${q}-${K}-hls/${V.label}/${w}`,path:R}),L+=N.segmentCount||Math.ceil(j/W)}catch(N){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${N}`)}}if(H.length===0)return null;let F=S1(z,"master.m3u8"),O=NK(H,X,q,K);return await m8(F,O),{manifestUrl:`${X}/${q}-${K}-hls/master.m3u8`,manifestPath:F,playlists:H,segmentCount:L,duration:j}}catch(G){return console.warn(`[stx-media] Failed to generate HLS manifest: ${G}`),null}}function NK($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),q=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${q},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
|
|
1185
|
+
`)}async function u$($,Z,Y,X,J){let Q=await u8();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=g8($);if(!await R0(G))return null;let K=await M0(G),q=h8($,d8($)),z=S1(Y,`${q}-${K}-dash`);await d$(z,{recursive:!0});let U=Z.length>0?Z:p8,W=J?.segmentDuration||4,_=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,L=[],F=[];for(let w of U){let R=S1(z,w.label);await d$(R,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:R,segmentDuration:W,width:w.width,height:w.height,videoBitrate:w.bitrate,audioBitrate:w.audioBitrate})){if(L.push({bandwidth:w.bitrate,width:w.width,height:w.height||Math.round(w.width*9/16),url:`${X}/${q}-${K}-dash/${w.label}/video`}),w.audioBitrate)F.push({bandwidth:w.audioBitrate,url:`${X}/${q}-${K}-dash/${w.label}/audio`})}}catch(N){console.warn(`[stx-media] Failed to generate DASH for ${w.label}: ${N}`)}}if(L.length===0)return null;let O=S1(z,"manifest.mpd"),V=TK(L,F,H,W,_);await m8(O,V);let A=[{type:"video",representations:L}];if(F.length>0)A.push({type:"audio",representations:F});return{manifestUrl:`${X}/${q}-${K}-dash/manifest.mpd`,manifestPath:O,adaptationSets:A,duration:H}}catch(G){return console.warn(`[stx-media] Failed to generate DASH manifest: ${G}`),null}}function TK($,Z,Y,X,J){let Q=f8(Y),G=f8(J),K=`<?xml version="1.0" encoding="UTF-8"?>
|
|
1186
1186
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
|
|
1187
1187
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
1188
1188
|
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"
|
|
@@ -1208,7 +1208,7 @@ ${w.join(`
|
|
|
1208
1208
|
</Representation>
|
|
1209
1209
|
`}K+=` </AdaptationSet>
|
|
1210
1210
|
`}return K+=` </Period>
|
|
1211
|
-
</MPD>`,K}function f8($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var p8;var s3=b(()=>{k1();p8=[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000},{label:"360p",width:640,height:360,bitrate:600000,audioBitrate:64000}]});import{resolve as l8,basename as MK,extname as IK,join as DK}from"path";import{mkdir as EK}from"fs/promises";async function c8(){try{return await import("ts-videos")}catch{return null}}function kK($){switch($){case"very-low":return 500000;case"low":return 1e6;case"medium":return 2500000;case"high":return 5000000;case"very-high":return 1e7;case"lossless":return 0;default:return 2500000}}function SK($){switch($){case"youtube":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};case"twitter":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"instagram-feed":return{codec:"h264",maxWidth:1080,maxHeight:1080,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"instagram-story":case"instagram-reels":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"tiktok":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"discord":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:60,bitrate:8000000,audioCodec:"aac",audioBitrate:192000};case"linkedin":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"facebook":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"web-progressive":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000,twoPass:!0};case"web-streaming":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};default:return{}}}async function r3($){let Z=await c8();if(!Z)return null;try{let Y=l8($),J=await new Z.Input(Y).getInfo();return{duration:J.duration||0,width:J.width||0,height:J.height||0,frameRate:J.frameRate||0,bitrate:J.bitrate||0,codec:J.videoCodec||"",audioCodec:J.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function i8($,Z,Y,X){let J=await c8();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await v$($,Z,Y);if(Q)return Q;try{let G=l8($);if(!await R0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",q=Y.baseUrl||"/videos";await EK(K,{recursive:!0});let z=await
|
|
1211
|
+
</MPD>`,K}function f8($){let Z=Math.floor($/3600),Y=Math.floor($%3600/60),X=Math.floor($%60),J="PT";if(Z>0)J+=`${Z}H`;if(Y>0)J+=`${Y}M`;return J+=`${X}S`,J}var p8;var s3=b(()=>{k1();p8=[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000},{label:"360p",width:640,height:360,bitrate:600000,audioBitrate:64000}]});import{resolve as l8,basename as MK,extname as IK,join as DK}from"path";import{mkdir as EK}from"fs/promises";async function c8(){try{return await import("ts-videos")}catch{return null}}function kK($){switch($){case"very-low":return 500000;case"low":return 1e6;case"medium":return 2500000;case"high":return 5000000;case"very-high":return 1e7;case"lossless":return 0;default:return 2500000}}function SK($){switch($){case"youtube":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};case"twitter":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"instagram-feed":return{codec:"h264",maxWidth:1080,maxHeight:1080,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"instagram-story":case"instagram-reels":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:3500000,audioCodec:"aac",audioBitrate:128000};case"tiktok":return{codec:"h264",maxWidth:1080,maxHeight:1920,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"discord":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:60,bitrate:8000000,audioCodec:"aac",audioBitrate:192000};case"linkedin":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,bitrate:5000000,audioCodec:"aac",audioBitrate:128000};case"facebook":return{codec:"h264",maxWidth:1280,maxHeight:720,frameRate:30,bitrate:4000000,audioCodec:"aac",audioBitrate:128000};case"web-progressive":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000,twoPass:!0};case"web-streaming":return{codec:"h264",maxWidth:1920,maxHeight:1080,frameRate:30,audioCodec:"aac",audioBitrate:128000};default:return{}}}async function r3($){let Z=await c8();if(!Z)return null;try{let Y=l8($),J=await new Z.Input(Y).getInfo();return{duration:J.duration||0,width:J.width||0,height:J.height||0,frameRate:J.frameRate||0,bitrate:J.bitrate||0,codec:J.videoCodec||"",audioCodec:J.audioCodec}}catch(Y){return console.warn(`[stx-media] Failed to analyze video: ${Y}`),null}}async function i8($,Z,Y,X){let J=await c8();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await v$($,Z,Y);if(Q)return Q;try{let G=l8($);if(!await R0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",q=Y.baseUrl||"/videos";await EK(K,{recursive:!0});let z=await M0(G),U=MK($,IK($)),W={src:$,processed:!0,hash:z};X?.({percentage:5,stage:"analyzing"}),W.metadata=await r3(G)||void 0;let _={};if(Z.quality)_.bitrate=kK(Z.quality);if(Z.platform)Object.assign(_,SK(Z.platform));if(Z.transcode)Object.assign(_,Z.transcode);if(Object.keys(_).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let B=`${U}-${z}.mp4`,j=DK(K,B);try{let H=await bK(G,j,_,J,(L)=>X?.({percentage:10+L*0.5,stage:"transcoding"}));if(H)W.transcoded={path:j,url:`${q}/${B}`,duration:H.duration,size:H.size,video:{codec:_.codec||"h264",width:H.width,height:H.height,bitrate:H.bitrate,frameRate:H.frameRate},audio:H.audioCodec?{codec:_.audioCodec||"aac",bitrate:_.audioBitrate||128000,sampleRate:_.sampleRate||48000,channels:_.channels||2}:void 0}}catch(H){W.errors=W.errors||[],W.errors.push(`Transcoding failed: ${H}`)}}if(Z.generatePoster){X?.({percentage:65,stage:"generating-poster"});let B=typeof Z.generatePoster==="object"?Z.generatePoster:{timestamp:0},j=await g$(G,B,K,q);if(j)W.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let B=await h$(G,Y.thumbnails,K,q);if(B.length>0)W.thumbnails=B}if(Z.streaming){X?.({percentage:80,stage:"generating-manifests"});let B=typeof Z.streaming==="object"?Z.streaming:Y.streaming||{format:"hls"};if(B.format==="hls"||B.format===void 0){let j=await m$(G,B.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)W.streaming={...W.streaming,hls:j}}if(B.format==="dash"){let j=await u$(G,B.qualities||Y.streaming?.defaultQualities||[],K,q);if(j)W.streaming={...W.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await x$($,Z,W,Y),W}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function bK($,Z,Y,X,J){try{let G=await new X.Conversion($,Z,{videoCodec:Y.codec,videoBitrate:Y.bitrate,width:Y.maxWidth,height:Y.maxHeight,frameRate:Y.frameRate,audioCodec:Y.audioCodec,audioBitrate:Y.audioBitrate,sampleRate:Y.sampleRate,channels:Y.channels}).run((K)=>{J?.(K.percentage/100)});return{duration:G.duration||0,size:G.size||0,width:G.width||Y.maxWidth||0,height:G.height||Y.maxHeight||0,bitrate:G.bitrate||Y.bitrate||0,frameRate:G.frameRate||Y.frameRate||30,audioCodec:G.audioCodec}}catch(Q){return console.error(`[stx-media] Transcoding failed: ${Q}`),null}}var n8=b(()=>{k1();u3();o3();s3()});var o8={};l(o8,{setCachedVideoResult:()=>x$,processVideo:()=>i8,getCachedVideoResult:()=>v$,generateThumbnails:()=>h$,generateSpriteSheet:()=>x8,generatePoster:()=>g$,generateHLSManifest:()=>m$,generateDASHManifest:()=>u$,clearVideoCache:()=>v8,analyzeVideo:()=>r3,VideoProcessorCache:()=>P$});var s8=b(()=>{n8();o3();s3();u3()});async function a8(){try{return await Promise.resolve().then(() => (s8(),o8))}catch($){if(!r8)console.warn("[stx-media] Video processor not available, some features disabled:",$),r8=!0;return null}}async function p$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return fK(X,Y)}if(Y.processedResult?.processed)return ZZ($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await gK(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:q,controls:z=t8,autoplay:U=!1,muted:W=!1,loop:_=!1,preload:B=e8,playsinline:j=!0,lazy:H=!0,player:L="native",type:F,width:O,height:V,crossorigin:A,disablePictureInPicture:w=!1,disableRemotePlayback:R=!1}=$,N=J||K,M=$.class,T=$.style,I=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(L==="ts-video")return PK($,Z);if(F&&F!=="video")return CK(Q||"",F,$);let D=G.length>0?G:Q?[{src:Q,type:$Z(Q)}]:[],E=[`id="${I}"`];if(z)E.push("controls");if(U)E.push("autoplay");if(W)E.push("muted");if(_)E.push("loop");if(j)E.push("playsinline");if(w)E.push("disablepictureinpicture");if(R)E.push("disableremoteplayback");if(A)E.push(`crossorigin="${A}"`);if(H){if(E.push(`data-preload="${B}"`),E.push('preload="none"'),N)E.push(`data-poster="${H0(N)}"`);E.push("data-stx-lazy")}else if(E.push(`preload="${B}"`),N)E.push(`poster="${H0(N)}"`);if(O)E.push(`width="${O}"`);if(V)E.push(`height="${V}"`);if(M)E.push(`class="${H0(M)}"`);if(T)E.push(`style="${H0(T)}"`);let k=D.map((P)=>{return` <source ${H?`data-src="${H0(P.src)}"`:`src="${H0(P.src)}"`} type="${P.type}"${P.media?` media="${P.media}"`:""} />`}).join(`
|
|
1212
1212
|
`),S=`<video ${E.join(" ")}>
|
|
1213
1213
|
${k}
|
|
1214
1214
|
Your browser does not support the video tag.
|
|
@@ -2317,7 +2317,7 @@ else { this.removeAttribute('${E}'); }`:`this.setAttribute('${E}', ${I.type==="o
|
|
|
2317
2317
|
}
|
|
2318
2318
|
else {
|
|
2319
2319
|
this.removeAttribute('${E}');
|
|
2320
|
-
}`:"",y=I.observer?`this.${I.observer}(value, oldValue);`:"",
|
|
2320
|
+
}`:"",y=I.observer?`this.${I.observer}(value, oldValue);`:"",P=I.render!==!1?"this._scheduleRender();":"";return`
|
|
2321
2321
|
get ${T}(): ${D} {
|
|
2322
2322
|
return this._${T};
|
|
2323
2323
|
}
|
|
@@ -2327,7 +2327,7 @@ else {
|
|
|
2327
2327
|
if (oldValue === value) return;
|
|
2328
2328
|
this._${T} = value;${S}
|
|
2329
2329
|
${y}
|
|
2330
|
-
${
|
|
2330
|
+
${P}
|
|
2331
2331
|
this.dispatchEvent(new CustomEvent('${T}-changed', {
|
|
2332
2332
|
detail: { value, oldValue },
|
|
2333
2333
|
bubbles: true
|
|
@@ -2933,8 +2933,8 @@ ${U}
|
|
|
2933
2933
|
customElements.define('${Z}', ${G});
|
|
2934
2934
|
`}async function TZ($,Z,Y,X){if(Z.length<1)return a("WebComponent","@webcomponent directive requires at least the tag name parameter",c.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[U1.join(U1.dirname(X),G,`${J}.stx`),U1.join(process.cwd(),G,`${J}.stx`),U1.join(U1.dirname(X),`${J}.stx`)],q=null;for(let W of K)if(await n(W)){q=await Bun.file(W).text();break}if(!q)return a("WebComponent",`Component file not found: ${J}.stx`,c.FILE_NOT_FOUND);let z=Iq(q,J);return`<script type="module">
|
|
2935
2935
|
${Dq(z)}
|
|
2936
|
-
</script>`}var U7;var MZ=b(()=>{J1();V0();U7={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var IZ={};l(IZ,{timingPlugin:()=>yq,pluginManager:()=>Eq,definePlugin:()=>e$,debugPlugin:()=>bq,createVariablesPlugin:()=>Cq,createFilterPlugin:()=>Sq,createDirectivePlugin:()=>kq,PluginManager:()=>_7});function e$($){return $}class _7{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function kq($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Sq($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Cq($){return e$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var Eq,bq,yq;var DZ=b(()=>{Eq=new _7;bq=e$({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),yq=e$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var kZ={};l(kZ,{validateConfig:()=>fq,loadStxConfig:()=>Z4,defineStxConfig:()=>xq,defaultConfig:()=>C1,config:()=>K5});import B7 from"fs";import M0 from"path";import{loadConfigWithResult as Pq}from"bunfig";function vq($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=M0.join(process.cwd(),"resources","views"),J=M0.join(process.cwd(),"resources","layouts");if(B7.existsSync(X)&&B7.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=M0.join(process.cwd(),"resources","views","pages");if(B7.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function Z4($){if(!$){if(G5)return G5;if($4)return $4}let Z=$?M0.resolve($):process.cwd(),Y=EZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await Pq({name:"stx",alias:"ui",cwd:Z,defaultConfig:C1,verbose:!1})).config,G=vq(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!M0.isAbsolute(Q.partialsDir))Q.partialsDir=M0.join(K,Q.partialsDir);if(Q.componentsDir&&!M0.isAbsolute(Q.componentsDir))Q.componentsDir=M0.join(K,Q.componentsDir);if(Q.layoutsDir&&!M0.isAbsolute(Q.layoutsDir))Q.layoutsDir=M0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (DZ(),IZ)),q=[],z=[];for(let U of Q.plugins){let W=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(W),j=M0.dirname(G0.resolve(W))}catch{let L=M0.resolve(process.cwd(),W);B=await import(L),j=M0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=M0.resolve(j,H.components);q.push(L)}if(H.pages){let L=M0.resolve(j,H.pages),F=_.path||"/";z.push({dir:L,prefix:F})}if(H.setup){let L={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,O)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=O},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(_,L)}console.log(`[stx] Plugin loaded: ${H.name||W}`)}catch(B){console.warn(`[stx] Failed to load plugin ${W}:`,B.message)}}Q._pluginComponentDirs=q,Q._pluginPageDirs=z}return Q})();if(EZ.set(Z,X),!$)$4=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function xq($){return $}function fq($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var C1,G5=null,EZ,$4=null,K5;var q5=b(()=>{Q3();U3();O3();L3();w3();P8();t3();QZ();z7();MZ();C1={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",build:{pagesDir:"pages",outputDir:"dist",baseUrl:"/",sitemap:!0,minify:!0,cache:!0,cacheDir:".stx/ssg-cache",concurrency:10,generate404:!0,publicDir:"public",trailingSlash:!1,cleanOutput:!0},customDirectives:[{name:"markdown",handler:V3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:TZ,hasEndTag:!1,description:"Include a web component in the template"},W$,_$,K7,q7,G3,q3,z3,K3,t9,Z8,C8,a3,...e3],middleware:[],i18n:{defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},webComponents:{enabled:!1,outputDir:"dist/web-components",components:[]},docs:{enabled:!1,outputDir:"docs",format:"markdown",components:!0,templates:!0,directives:!0},streaming:{enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},hydration:{enabled:!1,mode:"islands",clientEntry:"src/client.ts",autoMarkers:!0,preload:"lazy"},router:{enabled:!0,container:"#app-content",linkSelector:"a[href]",viewTransitions:!0,scrollToTop:!0,prefetch:!0,cache:!0,cacheTTL:300000,skipSelectors:'[data-no-router], [target="_blank"]',viewTransitionCSS:{oldRoot:"fade-out 0.15s ease-in",newRoot:"fade-in 0.2s ease-out",oldContent:"slide-out 0.2s ease-in",newContent:"slide-in 0.25s ease-out"}},a11y:{enabled:!0,addSrOnlyStyles:!0,level:"AA",autoFix:!1,ignoreChecks:[]},seo:{enabled:!0,socialPreview:!0,defaultConfig:{title:"stx Project",description:"A website built with stx templating engine"}},animation:{enabled:!0,defaultDuration:300,defaultEase:"ease",respectMotionPreferences:!0,staggerDelay:50},markdown:{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0,additionalThemes:["light-plus","one-dark-pro","dracula","monokai","solarized-light","nord","github-dark"]}},loops:{maxWhileIterations:1000,useAltLoopVariable:!1},story:{enabled:!0,outDir:".stx/dist/story",storyMatch:["**/*.story.stx"],storyIgnored:["**/node_modules/**","**/dist/**","**/.stx/**"],port:6006},pwa:{enabled:!1,manifest:{name:"stx App",shortName:"stx",description:"A Progressive Web App built with stx",startUrl:"/",display:"standalone",orientation:"any",themeColor:"#000000",backgroundColor:"#ffffff",scope:"/"},icons:{src:"public/icon.png",sizes:[72,96,128,144,152,192,384,512],generateWebP:!0,generateAppleIcons:!0,outputDir:"pwa-icons",purpose:["any","maskable"]},routes:[{pattern:"/",strategy:"network-first"},{pattern:"/static/*",strategy:"cache-first",maxAgeSeconds:2592000},{pattern:"/api/*",strategy:"network-only"},{pattern:"*.js",strategy:"stale-while-revalidate"},{pattern:"*.css",strategy:"stale-while-revalidate"},{pattern:"*.png",strategy:"cache-first"},{pattern:"*.jpg",strategy:"cache-first"},{pattern:"*.webp",strategy:"cache-first"},{pattern:"*.svg",strategy:"cache-first"}],offline:{enabled:!0,fallbackTitle:"You are offline",fallbackMessage:"Please check your internet connection and try again.",precacheAssets:[]},serviceWorker:{fileName:"sw.js",cacheVersion:"1.0.0",skipWaiting:!0,clientsClaim:!0,navigationPreload:!1,excludeRoutes:["/api/auth/*"],cacheFileTypes:["html","css","js","png","jpg","jpeg","webp","svg","woff","woff2"],useWorkbox:!1},autoInject:!0,push:{enabled:!1,defaultOptions:{vibrate:[100,50,100],requireInteraction:!1}},backgroundSync:{enabled:!1,queueName:"stx-sync-queue",maxRetentionMinutes:1440,maxRetries:3,minInterval:1000,forms:[],endpoints:[]},shareTarget:{enabled:!1,action:"/share-target",method:"POST",enctype:"multipart/form-data",params:{title:"title",text:"text",url:"url"}},fileHandlers:{enabled:!1},protocolHandlers:[],cacheStorage:{maxSize:100,maxEntries:500,maxAge:30,purgeStrategy:"lru"},updates:{enabled:!0,promptUser:!0,autoReload:!1,message:"A new version is available. Reload to update?"},precache:{enabled:!0,includeHtml:!0,includeJs:!0,includeCss:!0,includeImages:!0,includeFonts:!0,include:[],exclude:["*.map","*.LICENSE.txt"],maxFileSizeKB:500}},media:{enabled:!0,image:{enabled:!0,defaultWidths:[320,480,640,768,1024,1280,1536,1920],defaultFormats:["avif","webp","jpeg"],defaultQuality:80,placeholderStrategy:"thumbhash",lazyByDefault:!0,enableDpr:!0,defaultDpr:[1,2,3],tsImages:{enabled:!0,outputDir:"dist/images",baseUrl:"/images",formatQuality:{jpeg:{quality:85,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4,lossless:!1}},breakpoints:[320,480,640,768,1024,1280,1536,1920],batchOptions:{concurrency:4,optimizationPreset:"web"}}},video:{enabled:!0,lazyByDefault:!0,defaultControls:!0,tsVideos:{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos",defaultQuality:"high",streaming:{enabled:!0,format:"hls",segmentDuration:6,defaultQualities:[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000}]},thumbnails:{enabled:!0,count:10,format:"webp",width:320},transcoding:{defaultCodec:"h264",defaultAudioCodec:"aac",speedPreset:"medium"}}},upload:{enabled:!0,maxSize:10485760,allowedTypes:["image/*","video/*","audio/*","application/pdf"],maxConcurrent:3},protected:{enabled:!0,expirationSeconds:3600,batchSize:10},cache:{enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}},broadcasting:{enabled:!1,driver:"bun",host:"0.0.0.0",port:6001,scheme:"ws",verbose:!1}};EZ=new Map;K5=new Proxy(C1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!$4)Z4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var iq={};l(iq,{resetCssCache:()=>uq,resetCrosswindCache:()=>pq,rebuildCrosswindCSS:()=>lq,loadCrosswindConfig:()=>F7,loadCrosswind:()=>L7,injectCrosswindCSS:()=>V7,getCachedCSS:()=>cq,generateCrosswindCSS:()=>CZ,extractClassNames:()=>yZ,buildCrosswindCSS:()=>bZ});import X4 from"fs";import X0 from"path";function O7($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function j7($,Z){if(Q1.has($))Q1.delete($);else if(Q1.size>=gq)Q1.delete(Q1.keys().next().value);Q1.set($,Z)}async function hq($){if(!W1)return null;try{let Z=Bun.file(X0.join(W1,`cw-${O7($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function dq($,Z){if(!W1)return;try{if(!X4.existsSync(W1))X4.mkdirSync(W1,{recursive:!0});await Bun.write(X0.join(W1,`cw-${O7($)}.css`),Z)}catch{}}async function SZ($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function mq(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function L7(){if(H7)return U5;H7=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await SZ(Y);if(X){if(U5=X,!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} CSS engine loaded`);return U5}}let Z=mq();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await SZ(Y);if(X){if(U5=X,!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return U5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${v.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${v.reset}`),console.warn(`${v.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${v.reset}`),null}}function uq(){Q1.clear()}function pq(){U5=null,H7=!1,p0=null,h5="",Q1.clear(),Y4=null}async function F7($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${v.yellow}[Crosswind]${v.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function bZ($){if(z5)return h5;z5=!0;try{let Z=await L7();if(!Z||!Z.build)return z5=!1,"";if(!p0)p0=await F7($);if(!p0)return z5=!1,"";let Y=Z.defaultConfig?.theme||{},X=p0.theme||{},J={...Z.defaultConfig,...p0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(h5=G.css,console.log(`${v.cyan}[Crosswind]${v.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let q=X0.isAbsolute(J.output)?J.output:X0.join($,J.output),z=X0.dirname(q);if(!X4.existsSync(z))X4.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return z5=!1,G.css}catch(Z){return console.error(`${v.red}[Crosswind]${v.reset} Build error:`,Z),z5=!1,h5}}async function lq($){p0=null,await bZ($)}function cq(){return h5}function yZ($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}Q=J.exec($)}return Z}async function CZ($,Z){try{let Y=await L7();if(!Y)return"";let X=yZ($);if(X.size===0)return"";let J=Z?X0.resolve(Z):process.cwd();if(!W1)W1=X0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${Y4||"default"}::${Q}`,K=Q1.get(G);if(K!==void 0)return j7(G,K),K;let q=await hq(G);if(q!==null)return j7(G,q),q;if(!p0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (q5(),kZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=X0.isAbsolute(N.css)?N.css:X0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${v.green}[Crosswind]${v.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(w={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=X0.isAbsolute(N.css.config)?N.css.config:X0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${v.green}[Crosswind]${v.reset} Using inline CSS config from stx.config.ts`)}}catch{}p0=w||await F7(J);try{Y4=O7(JSON.stringify(p0??{}))}catch{Y4="unhashable"}}let z=Y.defaultConfig||Y.config,U=p0||{},W=z.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...z.safelist||[],...U.safelist||[]],L={...z,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let w of H)F.generate(w);for(let w of X)F.generate(w);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let A=O.split(`
|
|
2937
|
-
`);for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean),M=[],T=[];for(let I of N){let D=I.startsWith("dark:"),S=`.${(D?I.slice(5):I).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let y=0;y<A.length;y++){let
|
|
2936
|
+
</script>`}var U7;var MZ=b(()=>{J1();V0();U7={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var IZ={};l(IZ,{timingPlugin:()=>yq,pluginManager:()=>Eq,definePlugin:()=>e$,debugPlugin:()=>bq,createVariablesPlugin:()=>Cq,createFilterPlugin:()=>Sq,createDirectivePlugin:()=>kq,PluginManager:()=>_7});function e$($){return $}class _7{plugins=new Map;sortedPlugins=[];initialized=!1;async register($,Z){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);if($.dependencies){for(let Y of $.dependencies)if(!this.plugins.has(Y))throw Error(`Plugin "${$.name}" depends on "${Y}" which is not registered`)}if(this.plugins.set($.name,$),$.onRegister)await $.onRegister(Z);this.sortPlugins()}async unregister($){let Z=this.plugins.get($);if(!Z)return!1;for(let[Y,X]of this.plugins)if(X.dependencies?.includes($))throw Error(`Cannot unregister "${$}" because "${Y}" depends on it`);if(Z.onUnregister)await Z.onUnregister();return this.plugins.delete($),this.sortPlugins(),!0}get($){return this.plugins.get($)}has($){return this.plugins.has($)}getAll(){return[...this.sortedPlugins]}getAllDirectives(){let $=[];for(let Z of this.sortedPlugins)if(Z.registerDirectives)$.push(...Z.registerDirectives());return $}getAllFilters(){let $={};for(let Z of this.sortedPlugins)if(Z.registerFilters)Object.assign($,Z.registerFilters());return $}async runBeforeProcess($){return this.runHooks("beforeProcess",$)}async runAfterParse($){return this.runHooks("afterParse",$)}async runBeforeDirective($,Z){return this.runDirectiveHooks("beforeDirective",$,Z)}async runAfterDirective($,Z){return this.runDirectiveHooks("afterDirective",$,Z)}async runBeforeRender($){return this.runHooks("beforeRender",$)}async runAfterRender($){return this.runHooks("afterRender",$)}async runOnError($){for(let Z of this.sortedPlugins)if(Z.onError)try{let Y=await Z.onError($);if(Y){if(Y.template!==void 0)$.template=Y.template;if(Y.context)$.context={...$.context,...Y.context};if(Y.metadata)$.metadata={...$.metadata,...Y.metadata};if(Y.skip)return $}}catch(Y){console.error(`Error in plugin "${Z.name}" onError hook:`,Y)}return null}sortPlugins(){this.sortedPlugins=Array.from(this.plugins.values()).sort(($,Z)=>($.priority??100)-(Z.priority??100))}async runHooks($,Z){let Y={...Z};for(let X of this.sortedPlugins){let J=X[$];if(J)try{let Q=await J(Y);if(Q){if(Q.template!==void 0)Y.template=Q.template;if(Q.context)Y.context={...Y.context,...Q.context};if(Q.metadata)Y.metadata={...Y.metadata,...Q.metadata};if(Q.skip)break}}catch(Q){console.error(`Error in plugin "${X.name}" ${$} hook:`,Q)}}return Y}async runDirectiveHooks($,Z,Y){let X={...Y};for(let J of this.sortedPlugins){let Q=J[$];if(Q)try{let G=await Q(Z,X);if(G){if(G.template!==void 0)X.template=G.template;if(G.context)X.context={...X.context,...G.context};if(G.metadata)X.metadata={...X.metadata,...G.metadata};if(G.skip)break}}catch(G){console.error(`Error in plugin "${J.name}" ${$} hook:`,G)}}return X}}function kq($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function Sq($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function Cq($){return e$({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var Eq,bq,yq;var DZ=b(()=>{Eq=new _7;bq=e$({name:"stx-debug",version:"1.0.0",description:"Logs all plugin lifecycle events for debugging",priority:0,beforeProcess($){console.log("[stx-debug] beforeProcess:",$.filePath)},afterParse($){console.log("[stx-debug] afterParse:",$.template.length,"chars")},beforeDirective($,Z){console.log("[stx-debug] beforeDirective:",$)},afterDirective($,Z){console.log("[stx-debug] afterDirective:",$)},beforeRender($){console.log("[stx-debug] beforeRender")},afterRender($){console.log("[stx-debug] afterRender:",$.template.length,"chars")},onError($){console.error("[stx-debug] onError:",$.error.message,"in phase:",$.phase)}}),yq=e$({name:"stx-timing",version:"1.0.0",description:"Measures template processing time",priority:1,beforeProcess($){$.metadata.startTime=performance.now()},afterRender($){let Z=$.metadata.startTime;if(Z){let Y=performance.now()-Z;console.log(`[stx-timing] Processing took ${Y.toFixed(2)}ms`)}}})});var kZ={};l(kZ,{validateConfig:()=>fq,loadStxConfig:()=>Z4,defineStxConfig:()=>xq,defaultConfig:()=>C1,config:()=>K5});import B7 from"fs";import I0 from"path";import{loadConfigWithResult as Pq}from"bunfig";function vq($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=I0.join(process.cwd(),"resources","views"),J=I0.join(process.cwd(),"resources","layouts");if(B7.existsSync(X)&&B7.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=I0.join(process.cwd(),"resources","views","pages");if(B7.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function Z4($){if(!$){if(G5)return G5;if($4)return $4}let Z=$?I0.resolve($):process.cwd(),Y=EZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await Pq({name:"stx",alias:"ui",cwd:Z,defaultConfig:C1,verbose:!1})).config,G=vq(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!I0.isAbsolute(Q.partialsDir))Q.partialsDir=I0.join(K,Q.partialsDir);if(Q.componentsDir&&!I0.isAbsolute(Q.componentsDir))Q.componentsDir=I0.join(K,Q.componentsDir);if(Q.layoutsDir&&!I0.isAbsolute(Q.layoutsDir))Q.layoutsDir=I0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (DZ(),IZ)),q=[],z=[];for(let U of Q.plugins){let W=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(W),j=I0.dirname(G0.resolve(W))}catch{let L=I0.resolve(process.cwd(),W);B=await import(L),j=I0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=I0.resolve(j,H.components);q.push(L)}if(H.pages){let L=I0.resolve(j,H.pages),F=_.path||"/";z.push({dir:L,prefix:F})}if(H.setup){let L={addDirective:(F)=>{Q.customDirectives=Q.customDirectives||[],Q.customDirectives.push(F)},addRoute:(F,O)=>{Q.apiRoutes=Q.apiRoutes||{},Q.apiRoutes[F]=O},addMiddleware:(F)=>{Q.middleware=Q.middleware||[],Q.middleware.push(F)},pluginDir:j,config:Q};await H.setup(_,L)}console.log(`[stx] Plugin loaded: ${H.name||W}`)}catch(B){console.warn(`[stx] Failed to load plugin ${W}:`,B.message)}}Q._pluginComponentDirs=q,Q._pluginPageDirs=z}return Q})();if(EZ.set(Z,X),!$)$4=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function xq($){return $}function fq($){let Z=[],Y=[];if($.partialsDir!==void 0&&typeof $.partialsDir!=="string")Z.push({path:"partialsDir",message:"partialsDir must be a string",severity:"error"});if($.componentsDir!==void 0&&typeof $.componentsDir!=="string")Z.push({path:"componentsDir",message:"componentsDir must be a string",severity:"error"});if($.cache!==void 0&&typeof $.cache!=="boolean")Z.push({path:"cache",message:"cache must be a boolean",severity:"error"});if($.debug!==void 0&&typeof $.debug!=="boolean")Z.push({path:"debug",message:"debug must be a boolean",severity:"error"});if($.streaming){if($.streaming.bufferSize!==void 0){if(typeof $.streaming.bufferSize!=="number"||$.streaming.bufferSize<=0)Z.push({path:"streaming.bufferSize",message:"streaming.bufferSize must be a positive number",severity:"error"})}if($.streaming.timeout!==void 0){if(typeof $.streaming.timeout!=="number"||$.streaming.timeout<=0)Z.push({path:"streaming.timeout",message:"streaming.timeout must be a positive number",severity:"error"})}if($.streaming.strategy!==void 0){let X=["auto","manual","sections"];if(!X.includes($.streaming.strategy))Z.push({path:"streaming.strategy",message:`streaming.strategy must be one of: ${X.join(", ")}`,severity:"error"})}}if($.i18n){if($.i18n.format!==void 0){let X=["json","yaml","yml","js"];if(!X.includes($.i18n.format))Z.push({path:"i18n.format",message:`i18n.format must be one of: ${X.join(", ")}`,severity:"error"})}}if($.animation){if($.animation.defaultDuration!==void 0){if(typeof $.animation.defaultDuration!=="number"||$.animation.defaultDuration<0)Z.push({path:"animation.defaultDuration",message:"animation.defaultDuration must be a non-negative number",severity:"error"})}if($.animation.staggerDelay!==void 0){if(typeof $.animation.staggerDelay!=="number"||$.animation.staggerDelay<0)Z.push({path:"animation.staggerDelay",message:"animation.staggerDelay must be a non-negative number",severity:"error"})}}if($.a11y){if($.a11y.level!==void 0){let X=["AA","AAA"];if(!X.includes($.a11y.level))Z.push({path:"a11y.level",message:`a11y.level must be one of: ${X.join(", ")}`,severity:"error"})}}if($.hydration){if($.hydration.mode!==void 0){let X=["progressive","islands"];if(!X.includes($.hydration.mode))Z.push({path:"hydration.mode",message:`hydration.mode must be one of: ${X.join(", ")}`,severity:"error"})}if($.hydration.preload!==void 0){let X=["none","eager","lazy"];if(!X.includes($.hydration.preload))Z.push({path:"hydration.preload",message:`hydration.preload must be one of: ${X.join(", ")}`,severity:"error"})}}if($.customDirectives)if(!Array.isArray($.customDirectives))Z.push({path:"customDirectives",message:"customDirectives must be an array",severity:"error"});else $.customDirectives.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`customDirectives[${J}].name`,message:"Custom directive must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`customDirectives[${J}].handler`,message:"Custom directive must have a handler function",severity:"error"})});if($.middleware)if(!Array.isArray($.middleware))Z.push({path:"middleware",message:"middleware must be an array",severity:"error"});else $.middleware.forEach((X,J)=>{if(!X.name||typeof X.name!=="string")Z.push({path:`middleware[${J}].name`,message:"Middleware must have a name string",severity:"error"});if(!X.handler||typeof X.handler!=="function")Z.push({path:`middleware[${J}].handler`,message:"Middleware must have a handler function",severity:"error"});if(!X.timing||!["before","after"].includes(X.timing))Z.push({path:`middleware[${J}].timing`,message:'Middleware timing must be "before" or "after"',severity:"error"})});if($.debug===!0&&$.cache===!0)Y.push({path:"debug+cache",message:"Debug mode with caching enabled may show stale content during development",severity:"warning"});if($.seo?.enabled===!0&&!$.seo?.defaultConfig?.title)Y.push({path:"seo.defaultConfig.title",message:"SEO is enabled but no default title is set",severity:"warning"});if($.pwa){if($.pwa.enabled===!0&&!$.pwa.manifest?.name)Z.push({path:"pwa.manifest.name",message:"PWA manifest name is required when PWA is enabled",severity:"error"});if($.pwa.manifest?.display!==void 0){let X=["fullscreen","standalone","minimal-ui","browser"];if(!X.includes($.pwa.manifest.display))Z.push({path:"pwa.manifest.display",message:`PWA display must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.manifest?.orientation!==void 0){let X=["portrait","landscape","any","portrait-primary","portrait-secondary","landscape-primary","landscape-secondary"];if(!X.includes($.pwa.manifest.orientation))Z.push({path:"pwa.manifest.orientation",message:`PWA orientation must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.routes){let X=["cache-first","network-first","stale-while-revalidate","network-only","cache-only"];$.pwa.routes.forEach((J,Q)=>{if(!J.pattern||typeof J.pattern!=="string")Z.push({path:`pwa.routes[${Q}].pattern`,message:"PWA route must have a pattern string",severity:"error"});if(!X.includes(J.strategy))Z.push({path:`pwa.routes[${Q}].strategy`,message:`PWA route strategy must be one of: ${X.join(", ")}`,severity:"error"});if(J.maxAgeSeconds!==void 0&&(typeof J.maxAgeSeconds!=="number"||J.maxAgeSeconds<0))Z.push({path:`pwa.routes[${Q}].maxAgeSeconds`,message:"PWA route maxAgeSeconds must be a non-negative number",severity:"error"});if(J.maxEntries!==void 0&&(typeof J.maxEntries!=="number"||J.maxEntries<1))Z.push({path:`pwa.routes[${Q}].maxEntries`,message:"PWA route maxEntries must be a positive number",severity:"error"})})}if($.pwa.icons?.sizes){if(!Array.isArray($.pwa.icons.sizes))Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be an array of numbers",severity:"error"});else if($.pwa.icons.sizes.filter((J)=>typeof J!=="number"||J<16||J>1024).length>0)Z.push({path:"pwa.icons.sizes",message:"PWA icon sizes must be numbers between 16 and 1024",severity:"error"})}if($.pwa.icons?.purpose){let X=["any","maskable","monochrome"];if($.pwa.icons.purpose.filter((Q)=>!X.includes(Q)).length>0)Z.push({path:"pwa.icons.purpose",message:`PWA icon purpose must be one of: ${X.join(", ")}`,severity:"error"})}if($.pwa.enabled===!0&&!$.pwa.icons?.src)Y.push({path:"pwa.icons.src",message:"PWA is enabled but no icon source specified. Provide a 512x512 PNG for best results.",severity:"warning"});if($.pwa.enabled===!0&&!$.pwa.manifest?.themeColor)Y.push({path:"pwa.manifest.themeColor",message:"PWA theme color not set, defaulting to black",severity:"warning"})}return{valid:Z.length===0,errors:Z,warnings:Y}}var C1,G5=null,EZ,$4=null,K5;var q5=b(()=>{Q3();U3();O3();L3();w3();P8();t3();QZ();z7();MZ();C1={enabled:!0,ssr:!1,partialsDir:"partials",componentsDir:"components",layoutsDir:"layouts",defaultLayout:"default",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",build:{pagesDir:"pages",outputDir:"dist",baseUrl:"/",sitemap:!0,minify:!0,cache:!0,cacheDir:".stx/ssg-cache",concurrency:10,generate404:!0,publicDir:"public",trailingSlash:!1,cleanOutput:!0},customDirectives:[{name:"markdown",handler:V3,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:TZ,hasEndTag:!1,description:"Include a web component in the template"},W$,_$,K7,q7,G3,q3,z3,K3,t9,Z8,C8,a3,...e3],middleware:[],i18n:{defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},webComponents:{enabled:!1,outputDir:"dist/web-components",components:[]},docs:{enabled:!1,outputDir:"docs",format:"markdown",components:!0,templates:!0,directives:!0},streaming:{enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},hydration:{enabled:!1,mode:"islands",clientEntry:"src/client.ts",autoMarkers:!0,preload:"lazy"},router:{enabled:!0,container:"#app-content",linkSelector:"a[href]",viewTransitions:!0,scrollToTop:!0,prefetch:!0,cache:!0,cacheTTL:300000,skipSelectors:'[data-no-router], [target="_blank"]',viewTransitionCSS:{oldRoot:"fade-out 0.15s ease-in",newRoot:"fade-in 0.2s ease-out",oldContent:"slide-out 0.2s ease-in",newContent:"slide-in 0.25s ease-out"}},a11y:{enabled:!0,addSrOnlyStyles:!0,level:"AA",autoFix:!1,ignoreChecks:[]},seo:{enabled:!0,socialPreview:!0,defaultConfig:{title:"stx Project",description:"A website built with stx templating engine"}},animation:{enabled:!0,defaultDuration:300,defaultEase:"ease",respectMotionPreferences:!0,staggerDelay:50},markdown:{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0,additionalThemes:["light-plus","one-dark-pro","dracula","monokai","solarized-light","nord","github-dark"]}},loops:{maxWhileIterations:1000,useAltLoopVariable:!1},story:{enabled:!0,outDir:".stx/dist/story",storyMatch:["**/*.story.stx"],storyIgnored:["**/node_modules/**","**/dist/**","**/.stx/**"],port:6006},pwa:{enabled:!1,manifest:{name:"stx App",shortName:"stx",description:"A Progressive Web App built with stx",startUrl:"/",display:"standalone",orientation:"any",themeColor:"#000000",backgroundColor:"#ffffff",scope:"/"},icons:{src:"public/icon.png",sizes:[72,96,128,144,152,192,384,512],generateWebP:!0,generateAppleIcons:!0,outputDir:"pwa-icons",purpose:["any","maskable"]},routes:[{pattern:"/",strategy:"network-first"},{pattern:"/static/*",strategy:"cache-first",maxAgeSeconds:2592000},{pattern:"/api/*",strategy:"network-only"},{pattern:"*.js",strategy:"stale-while-revalidate"},{pattern:"*.css",strategy:"stale-while-revalidate"},{pattern:"*.png",strategy:"cache-first"},{pattern:"*.jpg",strategy:"cache-first"},{pattern:"*.webp",strategy:"cache-first"},{pattern:"*.svg",strategy:"cache-first"}],offline:{enabled:!0,fallbackTitle:"You are offline",fallbackMessage:"Please check your internet connection and try again.",precacheAssets:[]},serviceWorker:{fileName:"sw.js",cacheVersion:"1.0.0",skipWaiting:!0,clientsClaim:!0,navigationPreload:!1,excludeRoutes:["/api/auth/*"],cacheFileTypes:["html","css","js","png","jpg","jpeg","webp","svg","woff","woff2"],useWorkbox:!1},autoInject:!0,push:{enabled:!1,defaultOptions:{vibrate:[100,50,100],requireInteraction:!1}},backgroundSync:{enabled:!1,queueName:"stx-sync-queue",maxRetentionMinutes:1440,maxRetries:3,minInterval:1000,forms:[],endpoints:[]},shareTarget:{enabled:!1,action:"/share-target",method:"POST",enctype:"multipart/form-data",params:{title:"title",text:"text",url:"url"}},fileHandlers:{enabled:!1},protocolHandlers:[],cacheStorage:{maxSize:100,maxEntries:500,maxAge:30,purgeStrategy:"lru"},updates:{enabled:!0,promptUser:!0,autoReload:!1,message:"A new version is available. Reload to update?"},precache:{enabled:!0,includeHtml:!0,includeJs:!0,includeCss:!0,includeImages:!0,includeFonts:!0,include:[],exclude:["*.map","*.LICENSE.txt"],maxFileSizeKB:500}},media:{enabled:!0,image:{enabled:!0,defaultWidths:[320,480,640,768,1024,1280,1536,1920],defaultFormats:["avif","webp","jpeg"],defaultQuality:80,placeholderStrategy:"thumbhash",lazyByDefault:!0,enableDpr:!0,defaultDpr:[1,2,3],tsImages:{enabled:!0,outputDir:"dist/images",baseUrl:"/images",formatQuality:{jpeg:{quality:85,mozjpeg:!0,progressive:!0},png:{compressionLevel:9,palette:!1},webp:{quality:82,effort:5,smartSubsample:!0},avif:{quality:75,effort:4,lossless:!1}},breakpoints:[320,480,640,768,1024,1280,1536,1920],batchOptions:{concurrency:4,optimizationPreset:"web"}}},video:{enabled:!0,lazyByDefault:!0,defaultControls:!0,tsVideos:{enabled:!0,outputDir:"dist/videos",baseUrl:"/videos",defaultQuality:"high",streaming:{enabled:!0,format:"hls",segmentDuration:6,defaultQualities:[{label:"1080p",width:1920,height:1080,bitrate:5000000,audioBitrate:192000},{label:"720p",width:1280,height:720,bitrate:2500000,audioBitrate:128000},{label:"480p",width:854,height:480,bitrate:1e6,audioBitrate:96000}]},thumbnails:{enabled:!0,count:10,format:"webp",width:320},transcoding:{defaultCodec:"h264",defaultAudioCodec:"aac",speedPreset:"medium"}}},upload:{enabled:!0,maxSize:10485760,allowedTypes:["image/*","video/*","audio/*","application/pdf"],maxConcurrent:3},protected:{enabled:!0,expirationSeconds:3600,batchSize:10},cache:{enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}},broadcasting:{enabled:!1,driver:"bun",host:"0.0.0.0",port:6001,scheme:"ws",verbose:!1}};EZ=new Map;K5=new Proxy(C1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!$4)Z4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var iq={};l(iq,{resetCssCache:()=>uq,resetCrosswindCache:()=>pq,rebuildCrosswindCSS:()=>lq,loadCrosswindConfig:()=>F7,loadCrosswind:()=>L7,injectCrosswindCSS:()=>V7,getCachedCSS:()=>cq,generateCrosswindCSS:()=>CZ,extractClassNames:()=>yZ,buildCrosswindCSS:()=>bZ});import X4 from"fs";import X0 from"path";function O7($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function j7($,Z){if(Q1.has($))Q1.delete($);else if(Q1.size>=gq)Q1.delete(Q1.keys().next().value);Q1.set($,Z)}async function hq($){if(!W1)return null;try{let Z=Bun.file(X0.join(W1,`cw-${O7($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function dq($,Z){if(!W1)return;try{if(!X4.existsSync(W1))X4.mkdirSync(W1,{recursive:!0});await Bun.write(X0.join(W1,`cw-${O7($)}.css`),Z)}catch{}}async function SZ($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function mq(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==X0.dirname(Y))$.push(X0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(X0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(X0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=X0.dirname(Y);if(Z){let X=[X0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),X0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),X0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(X0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function L7(){if(H7)return U5;H7=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await SZ(Y);if(X){if(U5=X,!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} CSS engine loaded`);return U5}}let Z=mq();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await SZ(Y);if(X){if(U5=X,!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} CSS engine loaded from ${X0.dirname(X0.dirname(Y))}`);return U5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${v.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${v.reset}`),console.warn(`${v.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${v.reset}`),null}}function uq(){Q1.clear()}function pq(){U5=null,H7=!1,p0=null,h5="",Q1.clear(),Y4=null}async function F7($){try{let{loadConfigWithResult:Z}=await import("bunfig"),Y=await Z({name:"crosswind",cwd:$,defaultConfig:{},checkEnv:!1,verbose:!1});if(!Y?.path||!Y.config||Object.keys(Y.config).length===0)return null;let X=X0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${v.green}[Crosswind]${v.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${v.yellow}[Crosswind]${v.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function bZ($){if(z5)return h5;z5=!0;try{let Z=await L7();if(!Z||!Z.build)return z5=!1,"";if(!p0)p0=await F7($);if(!p0)return z5=!1,"";let Y=Z.defaultConfig?.theme||{},X=p0.theme||{},J={...Z.defaultConfig,...p0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(h5=G.css,console.log(`${v.cyan}[Crosswind]${v.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let q=X0.isAbsolute(J.output)?J.output:X0.join($,J.output),z=X0.dirname(q);if(!X4.existsSync(z))X4.mkdirSync(z,{recursive:!0});await Bun.write(q,G.css)}return z5=!1,G.css}catch(Z){return console.error(`${v.red}[Crosswind]${v.reset} Build error:`,Z),z5=!1,h5}}async function lq($){p0=null,await bZ($)}function cq(){return h5}function yZ($){let Z=new Set,Y=/class\s*=\s*["']([^"']+)["']/gi,X=Y.exec($);while(X!==null){for(let G of X[1].split(/\s+/))if(G.trim())Z.add(G.trim());X=Y.exec($)}let J=/(?:x-class|:class)\s*=\s*"([^"]+)"/gi,Q=J.exec($);while(Q!==null){let G=Q[1].match(/'([^']+)'/g);if(G){for(let K of G)for(let q of K.slice(1,-1).split(/\s+/))if(q.trim())Z.add(q.trim())}Q=J.exec($)}return Z}async function CZ($,Z){try{let Y=await L7();if(!Y)return"";let X=yZ($);if(X.size===0)return"";let J=Z?X0.resolve(Z):process.cwd();if(!W1)W1=X0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${Y4||"default"}::${Q}`,K=Q1.get(G);if(K!==void 0)return j7(G,K),K;let q=await hq(G);if(q!==null)return j7(G,q),q;if(!p0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (q5(),kZ)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=X0.isAbsolute(N.css)?N.css:X0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${v.green}[Crosswind]${v.reset} Loaded config from stx.config.ts \u2192 ${N.css}`)}}else{if(w={...N.css,content:N.css.content||[],preflight:N.css.preflight??!0,minify:N.css.minify??!1},N.css.config){let M=X0.isAbsolute(N.css.config)?N.css.config:X0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${v.green}[Crosswind]${v.reset} Using inline CSS config from stx.config.ts`)}}catch{}p0=w||await F7(J);try{Y4=O7(JSON.stringify(p0??{}))}catch{Y4="unhashable"}}let z=Y.defaultConfig||Y.config,U=p0||{},W=z.theme||{},B=(U.theme||{}).extend||{},j={...W};if(Object.keys(B).length>0)j.extend=B;let H=[...z.safelist||[],...U.safelist||[]],L={...z,...U,content:[],output:"",preflight:!0,minify:!1,theme:j,safelist:H},F=new Y.CSSGenerator(L);for(let w of H)F.generate(w);for(let w of X)F.generate(w);let O=F.toCSS(!0,!1),V=L.shortcuts||U.shortcuts||{};for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean);for(let M of N)F.generate(M)}O=F.toCSS(!0,!1);let A=O.split(`
|
|
2937
|
+
`);for(let[w,R]of Object.entries(V)){if(!X.has(w)&&!H.includes(w))continue;let N=R.split(/\s+/).filter(Boolean),M=[],T=[];for(let I of N){let D=I.startsWith("dark:"),S=`.${(D?I.slice(5):I).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let y=0;y<A.length;y++){let P=A[y].trim();if(P===`${S} {`||P.startsWith(`${S} {`)){let m=y,g="";while(m<A.length){if(g+=A[m],A[m].includes("}"))break;m++}let u=g.match(/\{([^}]+)\}/);if(u)if(D)T.push(u[1].trim());else M.push(u[1].trim());break}}}if(M.length)O+=`
|
|
2938
2938
|
.${w} { ${M.join(" ")} }`;if(T.length)O+=`
|
|
2939
2939
|
@media (prefers-color-scheme: dark) { .dark .${w} { ${T.join(" ")} } }`}return j7(G,O),dq(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function V7($,Z){let Y=await CZ($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
|
|
2940
2940
|
${Y}
|
|
@@ -3770,7 +3770,7 @@ ${Y}
|
|
|
3770
3770
|
</script>`}function tZ($,Z,Y){if(aZ=0,!wz($))return $;let X=Bz($);if(X.length===0)return $;let J=Vz($,X),Q=Fz(X,Z),G=J.lastIndexOf("</body>");if(G!==-1)J=J.slice(0,G)+Q+`
|
|
3771
3771
|
`+J.slice(G);else J+=Q;return J}function Vz($,Z){let Y=$;for(let X of Z){let Q=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*data-stx-scope="([^"]*)"[^>]*x-data\\s*=\\s*["']${G4(X.stateExpr)}["']`,"gi").exec(Y);if(Q)X.id=Q[1],X.selector=`[data-stx-scope="${X.id}"]`;else{let K=new RegExp(`<[a-z][a-z0-9-]*\\s+[^>]*x-data\\s*=\\s*["']${G4(X.stateExpr)}["'][^>]*data-stx-scope="([^"]*)"`,"gi").exec(Y);if(K)X.id=K[1],X.selector=`[data-stx-scope="${X.id}"]`;else Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*"${G4(X.stateExpr)}")([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`),Y=Y.replace(new RegExp(`(<[a-z][a-z0-9-]*\\s+)([^>]*)(x-data\\s*=\\s*'${G4(X.stateExpr)}')([^>]*>)`,"gi"),`$1data-stx-scope="${X.id}" $2$3$4`)}}return Y=Y.replace(/\s*x-data\s*=\s*"([^"]*)"/g,' data-stx-xdata="$1"'),Y=Y.replace(/\s*x-data\s*=\s*'([^']*)'/g," data-stx-xdata='$1'"),Y=Y.replace(/\s*x-init\s*=\s*"[^"]*"/g,""),Y=Y.replace(/\s*x-init\s*=\s*'[^']*'/g,""),Y}function wz($){return/x-data\s*=\s*["']/.test($)}var aZ=0,_z=0;var eZ=b(()=>{r0()});import Az from"fs";import T7 from"path";import{createHighlighter as Rz}from"ts-syntax-highlighter";async function I7($,Z={}){try{if(!await n($))throw Error(`Markdown file not found: ${$}`);let X=(await Az.promises.stat($)).mtime.getTime();if(Z.cache&&M7.has($)){let W=M7.get($);if(W.updatedAt>=X)return{content:W.content,data:W.data}}let J=await Bun.file($).text(),{data:Q,content:G}=J8(J),K=Z.markdown||K5.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},z=P5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)z=await Nz(z,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let U={content:z,data:Q||{}};if(Z.cache)M7.set($,{...U,updatedAt:X});return U}catch(Y){if(Z.debug)console.error(`Error reading/parsing markdown file ${$}:`,Y);let X=Y instanceof Error?Y.message:String(Y);return{content:Q0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function Nz($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!K4)try{K4=await Rz({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,q,z,U)=>{let W=U.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=z||(Y?"text":"");if(!_)return K;try{if(!K4.getSupportedLanguages().includes(_))return K;return(await K4.highlight(W,_,{theme:Z})).html}catch(B){console.error(`Error highlighting code block with language ${z}:`,B)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[q,z,U,W]=K,_=await J(q,z,U,W);Q=Q.replace(q,_)}return Q}async function $2($,Z,Y="",X={}){return await Tz($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,q,z)=>{try{let U=K;if(!T7.isAbsolute(K))U=T7.resolve(T7.dirname(Y),K);let W={};if(q)try{try{W=JSON.parse(q)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let O=q.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let V of O){let A=V.indexOf(":");if(A>0){let w=V.substring(0,A).trim(),R=V.substring(A+1).trim(),N=R.startsWith('"')&&R.endsWith('"'),M=R.startsWith("'")&&R.endsWith("'");if(N||M)R=R.substring(1,R.length-1);W[w]=R}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:_,data:B}=await I7(U,X),j={...Z,...B,...W},H=_,L=/\{\{([^}]+)\}\}/g;return H=H.replace(L,(F,O)=>{let V=O.trim();return j[V]!==void 0?String(j[V]):F}),H}catch(U){let W=U instanceof Error?U.message:String(U);return Q0("Markdown File",`Error including markdown file: ${W}`,Y,$,z,G)}})}async function Tz($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],q=J.index,z=J;X.push(Y(...z).then((U)=>({match:K,replacement:U,index:q})))}let Q=await Promise.all(X);Q.sort((K,q)=>q.index-K.index);let G=$;for(let{match:K,replacement:q}of Q)G=G.replace(K,()=>q);return G}var M7,K4=null;var D7=b(()=>{q5();V0();M7=new Map});function B1($,Z){try{let Y=$.trim();if(Z0(Y))return Y0(Y,Object.keys(Z))(...Object.values(Z));else return $0(Y,Z)}catch{return!1}}var Z2=b(()=>{F0()});class q4{source;pos=0;line=1;column=0;tokens=[];constructor($){this.source=$}tokenize(){this.tokens=[],this.pos=0,this.line=1,this.column=0;while(this.pos<this.source.length){let $=this.nextToken();if($)this.tokens.push($)}return this.tokens.push({type:"EOF",value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),this.tokens}nextToken(){if(this.pos>=this.source.length)return null;let $=this.pos,Z=this.line,Y=this.column,X=this.source[this.pos];if(/\s/.test(X))return this.readWhitespace($,Z,Y);if(X==="/"&&this.peek(1)==="/")return this.readLineComment($,Z,Y);if(X==="/"&&this.peek(1)==="*")return this.readBlockComment($,Z,Y);if(X==='"'||X==="'")return this.readString(X,$,Z,Y);if(X==="`")return this.readTemplateString($,Z,Y);if(/\d/.test(X)||X==="."&&/\d/.test(this.peek(1)||""))return this.readNumber($,Z,Y);if(/[a-z_$]/i.test(X))return this.readIdentifier($,Z,Y);if(X==="{"){if(this.peek(1)==="{"&&this.peek(2)==="{")return this.advance(3),{type:"RAW_START",value:"{{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="{")return this.advance(2),{type:"EXPRESSION_START",value:"{{",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="!"&&this.peek(2)==="!")return this.advance(3),{type:"RAW_START",value:"{!!",start:$,end:this.pos,line:Z,column:Y}}if(X==="}"){if(this.peek(1)==="}"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"}}}",start:$,end:this.pos,line:Z,column:Y};if(this.peek(1)==="}")return this.advance(2),{type:"EXPRESSION_END",value:"}}",start:$,end:this.pos,line:Z,column:Y}}if(X==="!"&&this.peek(1)==="!"&&this.peek(2)==="}")return this.advance(3),{type:"RAW_END",value:"!!}",start:$,end:this.pos,line:Z,column:Y};if(X==="@"&&/[a-z]/i.test(this.peek(1)||""))return this.readDirective($,Z,Y);let J=["===","!==","==","!=","<=",">=","&&","||","??","++","--","+=","-=","*=","/=","%=","**","=>","?.","...","<<",">>",">>>","&=","|=","^="];for(let Q of J)if(this.source.slice(this.pos,this.pos+Q.length)===Q)return this.advance(Q.length),{type:"OPERATOR",value:Q,start:$,end:this.pos,line:Z,column:Y};if(/[+\-*/%<>=!&|^~?:]/.test(X))return this.advance(),{type:"OPERATOR",value:X,start:$,end:this.pos,line:Z,column:Y};if(/[()[\]{},;.]/.test(X))return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y};return this.advance(),{type:"PUNCTUATION",value:X,start:$,end:this.pos,line:Z,column:Y}}readWhitespace($,Z,Y){while(this.pos<this.source.length&&/\s/.test(this.source[this.pos]))this.advance();return{type:"WHITESPACE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readLineComment($,Z,Y){this.advance(2);while(this.pos<this.source.length&&this.source[this.pos]!==`
|
|
3772
3772
|
`)this.advance();return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readBlockComment($,Z,Y){this.advance(2);while(this.pos<this.source.length-1){if(this.source[this.pos]==="*"&&this.source[this.pos+1]==="/"){this.advance(2);break}this.advance()}return{type:"COMMENT",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readString($,Z,Y,X){this.advance();while(this.pos<this.source.length){let J=this.source[this.pos];if(J==="\\"){this.advance(2);continue}if(J===$){this.advance();break}this.advance()}return{type:"STRING",value:this.source.slice(Z,this.pos),start:Z,end:this.pos,line:Y,column:X}}readTemplateString($,Z,Y){this.advance();let X=0,J=256;while(this.pos<this.source.length){let Q=this.source[this.pos];if(Q==="\\"){this.advance(2);continue}if(Q==="$"&&this.peek(1)==="{"){if(X>=J){this.pos=this.source.length;break}this.advance(2),X++;continue}if(Q==="{"&&X>0){X++,this.advance();continue}if(Q==="}"&&X>0){X--,this.advance();continue}if(Q==="`"&&X===0){this.advance();break}this.advance()}return{type:"TEMPLATE_STRING",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readNumber($,Z,Y){if(this.source[this.pos]==="0"){let X=this.peek(1)?.toLowerCase();if(X==="x"||X==="o"||X==="b"){this.advance(2);while(this.pos<this.source.length&&/[\da-f_]/i.test(this.source[this.pos]))this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}}while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance();if(this.source[this.pos]==="."&&/\d/.test(this.peek(1)||"")){this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(/e/i.test(this.source[this.pos]||"")){if(this.advance(),/[+-]/.test(this.source[this.pos]||""))this.advance();while(this.pos<this.source.length&&/[\d_]/.test(this.source[this.pos]))this.advance()}if(this.source[this.pos]==="n")this.advance();return{type:"NUMBER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readIdentifier($,Z,Y){while(this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]))this.advance();return{type:"IDENTIFIER",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}readDirective($,Z,Y){this.advance();while(this.pos<this.source.length&&/[a-z]/i.test(this.source[this.pos]))this.advance();return{type:"DIRECTIVE",value:this.source.slice($,this.pos),start:$,end:this.pos,line:Z,column:Y}}advance($=1){for(let Z=0;Z<$&&this.pos<this.source.length;Z++){if(this.source[this.pos]===`
|
|
3773
|
-
`)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function O0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,q=!1;while(Q<$.length){let z=$[Q];if(G&&q){q=!1,Q++;continue}if(G&&z==="\\"){q=!0,Q++;continue}if(q=!1,(z==='"'||z==="'"||z==="`")&&!G){G=z,Q++;continue}if(z===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&z==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&z==="}"){K--,Q++;continue}if(z==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(z===Z)J++;else if(z===Y){if(J--,J===0)return Q}Q++}return-1}function Y2($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function E7($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function j1($,Z){let Y=Mz($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function Mz($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=O0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function P1($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let q=G.exec($),z=K.exec($),U=q?q.index:1/0,W=z?z.index:1/0;if(U<W)J++,Q=U+q[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+z[0].length}else break}return-1}function X2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=j1($,X);if(!J)return null;let Q=J.endPos,G=P1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U="if",W=J.expression,_=0,B=0;while(z<K.length){let j=K.indexOf("@",z);if(j===-1)break;z=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,z++;continue}if(/^@endif(?![a-z])/.test(H)){B--,z+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z});let F=z+L[0].length,O=j1(K,F);if(!O){z++;continue}U="elseif",W=O.expression,z=O.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z}),U="else",W=void 0,z+=5,_=z;continue}}z++}return q.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function d5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let Q=X2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function z4($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,q=K+Q[0].length-1,z=O0($,"(",")",q);if(z===-1){Q=J.exec($);continue}let U=$.slice(q+1,z),W=z+1,_=P1($,Z,Y,W);if(_===-1){Q=J.exec($);continue}let B=$.slice(W,_),j=_+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:U,content:B,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function k7($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=j1($,X);if(!J)return null;let Q=J.endPos,G=P1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U=null,W=0;while(z<K.length){let _=K.slice(z),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];z+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];z+=j[0].length;continue}if(W>0){if(U)U.content+=K[z];z++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)q.push(U);let O=z+H[0].length,V=j1(K,O);if(!V){z++;continue}U={type:"case",value:V.expression,content:""},z=V.endPos}else if(L&&_.startsWith("@default")){if(U)q.push(U);U={type:"default",content:""},z+=L[0].length}else if(F&&_.startsWith("@break"))z+=F[0].length;else{if(U)U.content+=K[z];z++}}if(U)q.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:q,start:Z,end:G+10}}var J2=()=>{};function Iz($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",q=Q?K==="{{{"?"}}}":"!!}":"}}",z=G+K.length,U=Dz($,z,q);if(U===-1){Y=G+1;continue}let W=$.slice(z,U).trim(),_=U+q.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function Dz($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function Ez($){let Z=E7($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=kz(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function kz($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=O0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=K2(G);return{name:X,args:K}}function K2($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function Sz($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=O0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function bz($){let Z=[],X=new q4($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let q=K.value;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=Q2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(z.type==="PUNCTUATION"&&(z.value==="{"||z.value==="[")){let U=z.start,W=z.value==="{"?"}":"]",_=O0($,z.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=G2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=Q2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${q} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let q=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;J++;let W=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){W=X[J].start;break}J++}if(W!==-1){let _=O0($,"{","}",W);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(q,_+1).replace(/^export\s+/,""),exported:G,start:q,end:_+1}),J=G2(X,_+1)}}}else J++}return Z}function Q2($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function G2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var q2=()=>{};var U4=b(()=>{J2();q2()});function yz($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=k7(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let z="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)z=W.content.trim()}else try{let _;if(W.value&&Z0(W.value))_=Y0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=$0(W.value,Z);if(q===_){z=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+z+X.substring(K.end),J=!0}catch(q){let z=q instanceof Error?q.message:String(q),U=a("Switch",`Error evaluating @switch expression: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function v1($,Z,Y){let X=$;X=yz(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=j1(X,K+7);if(!q)break;let z=q.endPos,U=P1(X,"unless","endunless",z);if(U===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let W=X.slice(z,U),_=q.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],A;while((A=L.exec(W))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(W))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(W))!==null)V.push({pos:A.index,type:"else"});V.sort((w,R)=>w.pos-R.pos);for(let w of V)if(w.type==="open")H++;else if(w.type==="close")H--;else if(w.type==="else"&&H===0){B=w.pos;break}}let j;if(B!==-1){let H=W.slice(0,B),L=W.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${W}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=b7(X,Z,Y),X=y7(X,Z,Y),X=S7(X,Z);let J=()=>{let Q=d5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let q="",z=!1;for(let U of K.branches){if(z)break;if(U.type==="else")q=U.content,z=!0;else try{let W;if(U.condition&&Z0(U.condition))W=Y0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=$0(U.condition,Z);if(W)q=U.content,z=!0}catch(W){q=a(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,c.EVALUATION_ERROR),z=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),U=a("If",`Error processing @if block: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function z2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function S7($,Z){let Y=$;function X(K,q,z,U){let W=1,_=U,B=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${z}(?![a-z])`,"g");while(_<K.length&&W>0){B.lastIndex=_,j.lastIndex=_;let H=B.exec(K),L=j.exec(K),F=H?H.index:1/0,O=L?L.index:1/0;if(F<O)W++,_=F+H[0].length;else if(O<1/0){if(W--,W===0)return O;_=O+L[0].length}else break}return-1}function J(K,q,z){let U=0,W=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=W.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((L,F)=>L.pos-F.pos);for(let L of j)if(L.type==="open")U++;else if(L.type==="close")U--;else if(L.type==="else"&&U===0)return L.pos;return-1}{let K=!0;while(K){K=!1;let q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+5),B=z2(_);if(B)U=B.value,W=z+5+B.consumed;else W=z+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${z} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?B1(`auth?.check && auth?.user?.[${U}]`,Z):B1("auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+6),B=z2(_);if(B)U=B.value,W=z+6+B.consumed;else W=z+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${z} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?B1(`!auth?.check || !auth?.user?.[${U}]`,Z):B1("!auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+9),K=!0}}function Q(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(q)U.push(q);if(z){let W=B1(z,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let W=Y.match(new RegExp(`@${K}\\s*\\(`));if(!W||W.index===void 0)break;let _=W.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,q,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),R=new RegExp(`@${z}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=A.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=w.exec(F))!==null)M.push({pos:T.index,type:"close"});while((T=R.exec(F))!==null)M.push({pos:T.index,type:"elseDirective"});while((T=N.exec(F))!==null)M.push({pos:T.index,type:"else"});M.sort((y,C)=>y.pos-C.pos);for(let y of M){if(y.type==="open"){V++;continue}if(y.type==="close"){V--;continue}if(V===0)O.push(y)}let I=[],D=0;for(let y=0;y<O.length;y++){let C=O[y];if(I.push({content:F.slice(D,C.pos),ability:void 0}),C.type==="elseDirective"){let m=F.slice(C.pos+`@${z}`.length),g=G(m);if(g){I[I.length-1]={content:F.slice(D,C.pos)},D=C.pos+`@${z}`.length+g.paramsEnd,I.push({content:"",ability:g.ability,type:g.type,id:g.id}),I.pop();let u=O[y+1],s=u?u.pos:F.length;I.push({content:F.slice(D,s),ability:g.ability,type:g.type,id:g.id}),D=s}}else D=C.pos+5}if(D<F.length){let y=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:F.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:F.slice(D)})}let E=Q(j.ability,j.type,j.id),k=K==="can"?E:!E,S="";if(k)S=I[0]?.content||"";else{let y=!1;for(let C=1;C<I.length;C++){let m=I[C];if(m.isFinalElse){S=m.content,y=!0;break}if(m.ability){let g=Q(m.ability,m.type,m.id);if(K==="can"?g:!g){S=m.content,y=!0;break}}}if(!y&&I.length>0){let C=I[I.length-1];if(C.isFinalElse)S=C.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${q}`.length),U=!0}}return Y}function b7($,Z,Y){let X=$;function J(Q,G,K,q,z){let U=!0;while(U){U=!1;let W=new RegExp(`@${G}\\s*\\(`),_=Q.match(W);if(!_||_.index===void 0)break;let B=_.index,j=j1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=P1(Q,G,K,H);if(L===-1){console.warn(`[stx] @${G} directive at position ${B} has no matching @${K} \u2014 the block was skipped.`);break}let F=Q.slice(H,L),O=j.expression,V=-1,A=0,w=0;while(w<F.length){let R=F.indexOf("@",w);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){A++,w=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){A--,w=R+1;continue}if(A===0&&/^@else(?![a-z])/.test(N)){V=R;break}w=R+1}try{let R=q(O.trim()),N;if(V!==-1){let M=F.slice(0,V),T=F.slice(V+5);N=R?M:T}else N=R?F:"";Q=Q.substring(0,B)+N+Q.substring(L+`@${K}`.length),U=!0}catch(R){let N=R instanceof Error?R.message:String(R),M=a(z,`Error processing @${G} directive: ${N}`,c.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=B1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=B1(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function y7($,Z,Y){let X=$,J="development";function Q(G,K,q,z){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${q}(?![a-z])`),j=G,H=!0;while(H){H=!1,U.lastIndex=0;let L=U.exec(j);if(!L)break;let F=L.index,O=F+L[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,z=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,W.lastIndex=A;let E=U.exec(j),k=W.exec(j),S=E?E.index:1/0,y=k?k.index:1/0;if(S<y)V++,A=S+E[0].length;else if(y<1/0){if(V--,V===0){w=y;break}A=y+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${q} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);I=z?E:k}else I=z?R:"";let D=`@${q}`.length;j=j.substring(0,F)+I+j.substring(w+D),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var W4=b(()=>{Z2();J1();U4();F0()});function U2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function x1($,Z){if(!$)return Z?.nonceGenerator?.()??U2();let Y=C7.get($);if(!Y)Y=Z?.nonceGenerator?.()??U2(),C7.set($,Y);return Y}function bw($){C7.delete($)}function W2($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function v7($,Z){return`<meta http-equiv="Content-Security-Policy" content="${W2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function yw($){return{enabled:!0,directives:{strict:Cz,moderate:P7,relaxed:Pz,api:vz}[$]||P7,useNonce:$==="strict",addMetaTag:!0}}function Cw($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],q=[...new Set([...K,...J])];Y[Q]=q}}return Y}function _2($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?x1(Y,Z):void 0,J=v7(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3773
|
+
`)this.line++,this.column=0;else this.column++;this.pos++}}peek($){return this.source[this.pos+$]}saveState(){return{pos:this.pos,line:this.line,column:this.column}}restoreState($){this.pos=$.pos,this.line=$.line,this.column=$.column}}function O0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,q=!1;while(Q<$.length){let z=$[Q];if(G&&q){q=!1,Q++;continue}if(G&&z==="\\"){q=!0,Q++;continue}if(q=!1,(z==='"'||z==="'"||z==="`")&&!G){G=z,Q++;continue}if(z===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&z==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&z==="}"){K--,Q++;continue}if(z==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(z===Z)J++;else if(z===Y){if(J--,J===0)return Q}Q++}return-1}function Y2($,Z){let Y=Z,X={paren:0,bracket:0,brace:0},J=null,Q=0;while(Y<$.length){let G=$[Y];if((Y>0?$[Y-1]:"")==="\\"&&J){Y++;continue}if((G==='"'||G==="'")&&!J){J=G,Y++;continue}if(G===J&&J!=="`"){J=null,Y++;continue}if(G==="`"&&!J){J="`",Y++;continue}if(G==="`"&&J==="`"&&Q===0){J=null,Y++;continue}if(J==="`"&&G==="$"&&$[Y+1]==="{"){Q++,Y+=2;continue}if(Q>0){if(G==="{")Q++;else if(G==="}")Q--;Y++;continue}if(J){Y++;continue}if(X.paren===0&&X.bracket===0&&X.brace===0){if($.slice(Y,Y+2)==="}}"||$.slice(Y,Y+3)==="!!}")break;if(G===","||G===";")break}if(G==="(")X.paren++;else if(G===")"){if(X.paren--,X.paren<0)break}else if(G==="[")X.bracket++;else if(G==="]"){if(X.bracket--,X.bracket<0)break}else if(G==="{")X.brace++;else if(G==="}"){if(X.brace--,X.brace<0)break}Y++}return{expression:$.slice(Z,Y),endPos:Y}}function E7($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+=K+$[G+1],G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K==="|"&&$[G+1]!=="|"&&(G===0||$[G-1]!=="|")&&$[G-1]!=="\\"&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}if(K==="|"&&$[G-1]==="\\"&&!J){Y=Y.slice(0,-1)+K;continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function j1($,Z){let Y=Mz($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function Mz($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=O0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function P1($,Z,Y,X){let J=1,Q=X,G=new RegExp(`@${Z}\\s*\\(`,"g"),K=new RegExp(`@${Y}(?![a-z])`,"g");while(Q<$.length&&J>0){G.lastIndex=Q,K.lastIndex=Q;let q=G.exec($),z=K.exec($),U=q?q.index:1/0,W=z?z.index:1/0;if(U<W)J++,Q=U+q[0].length;else if(W<1/0){if(J--,J===0)return W;Q=W+z[0].length}else break}return-1}function X2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=j1($,X);if(!J)return null;let Q=J.endPos,G=P1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U="if",W=J.expression,_=0,B=0;while(z<K.length){let j=K.indexOf("@",z);if(j===-1)break;z=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,z++;continue}if(/^@endif(?![a-z])/.test(H)){B--,z+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z});let F=z+L[0].length,O=j1(K,F);if(!O){z++;continue}U="elseif",W=O.expression,z=O.endPos,_=z;continue}else if(/^@else(?![a-z])/.test(H)){q.push({type:U,condition:W,content:K.substring(_,z),start:Q+_,end:Q+z}),U="else",W=void 0,z+=5,_=z;continue}}z++}return q.push({type:U,condition:W,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:q,start:Z,end:G+6}}function d5($){let Z=[],Y=/@if\s*\(/g,X=Y.exec($);while(X!==null){if(Z.some((G)=>X.index>G.start&&X.index<G.end)){X=Y.exec($);continue}let Q=X2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function z4($,Z,Y){let X=[],J=new RegExp(`@${Z}\\s*\\(`,"g"),Q=J.exec($);while(Q!==null){if(X.some((H)=>Q.index>H.start&&Q.index<H.end)){Q=J.exec($);continue}let K=Q.index,q=K+Q[0].length-1,z=O0($,"(",")",q);if(z===-1){Q=J.exec($);continue}let U=$.slice(q+1,z),W=z+1,_=P1($,Z,Y,W);if(_===-1){Q=J.exec($);continue}let B=$.slice(W,_),j=_+`@${Y}`.length;X.push({fullMatch:$.slice(K,j),name:Z,params:U,content:B,start:K,end:j}),J.lastIndex=j,Q=J.exec($)}return X}function k7($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=j1($,X);if(!J)return null;let Q=J.endPos,G=P1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),q=[],z=0,U=null,W=0;while(z<K.length){let _=K.slice(z),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(W++,U)U.content+=B[0];z+=B[0].length;continue}if(j){if(W--,U)U.content+=j[0];z+=j[0].length;continue}if(W>0){if(U)U.content+=K[z];z++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)q.push(U);let O=z+H[0].length,V=j1(K,O);if(!V){z++;continue}U={type:"case",value:V.expression,content:""},z=V.endPos}else if(L&&_.startsWith("@default")){if(U)q.push(U);U={type:"default",content:""},z+=L[0].length}else if(F&&_.startsWith("@break"))z+=F[0].length;else{if(U)U.content+=K[z];z++}}if(U)q.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:q,start:Z,end:G+10}}var J2=()=>{};function Iz($){let Z=[],Y=0;while(Y<$.length){let X=$.indexOf("{{",Y),J=$.indexOf("{!!",Y),Q=!1,G;if(X===-1&&J===-1)break;else if(X===-1)G=J,Q=!0;else if(J===-1)G=X,Q=!1;else if(J<X)G=J,Q=!0;else G=X,Q=!1;if(!Q&&$.slice(G,G+3)==="{{{")Q=!0;let K=Q?$.slice(G,G+3)==="{{{"?"{{{":"{!!":"{{",q=Q?K==="{{{"?"}}}":"!!}":"}}",z=G+K.length,U=Dz($,z,q);if(U===-1){Y=G+1;continue}let W=$.slice(z,U).trim(),_=U+q.length;Z.push({fullMatch:$.slice(G,_),expression:W,start:G,end:_,isRaw:Q}),Y=_}return Z}function Dz($,Z,Y){let X=Z,J=null,Q={paren:0,bracket:0,brace:0},G=0;while(X<$.length){let K=$[X];if((X>0?$[X-1]:"")==="\\"&&J){X++;continue}if((K==='"'||K==="'")&&!J){J=K,X++;continue}if(K===J&&J!=="`"){J=null,X++;continue}if(K==="`"&&!J){J="`",X++;continue}if(K==="`"&&J==="`"&&G===0){J=null,X++;continue}if(J==="`"&&K==="$"&&$[X+1]==="{"){G++,X+=2;continue}if(G>0){if(K==="{")G++;else if(K==="}")G--;X++;continue}if(J){X++;continue}if(K==="(")Q.paren++;else if(K===")")Q.paren--;else if(K==="[")Q.bracket++;else if(K==="]")Q.bracket--;else if(K==="{")Q.brace++;else if(K==="}")Q.brace--;if(Q.paren===0&&Q.bracket===0&&Q.brace<=0){if($.slice(X,X+Y.length)===Y)return X}X++}return-1}function Ez($){let Z=E7($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=kz(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function kz($){let Z=$.trim();if(!Z)return null;let Y=Z.indexOf("(");if(Y===-1)return{name:Z,args:[]};let X=Z.slice(0,Y).trim(),J=Y+1,Q=O0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=K2(G);return{name:X,args:K}}function K2($){let Z=[],Y="",X={paren:0,bracket:0,brace:0},J=null,Q=0;for(let G=0;G<$.length;G++){let K=$[G];if((G>0?$[G-1]:"")==="\\"&&J){Y+=K;continue}if((K==='"'||K==="'")&&!J){J=K,Y+=K;continue}if(K===J&&J!=="`"){J=null,Y+=K;continue}if(K==="`"&&!J){J="`",Y+=K;continue}if(K==="`"&&J==="`"&&Q===0){J=null,Y+=K;continue}if(J==="`"&&K==="$"&&$[G+1]==="{"){Q++,Y+="${",G++;continue}if(Q>0&&K==="{"){Q++,Y+=K;continue}if(Q>0&&K==="}"){Q--,Y+=K;continue}if(J){Y+=K;continue}if(K==="(")X.paren++;else if(K===")")X.paren--;else if(K==="[")X.bracket++;else if(K==="]")X.bracket--;else if(K==="{")X.brace++;else if(K==="}")X.brace--;if(K===","&&X.paren===0&&X.bracket===0&&X.brace===0){Z.push(Y.trim()),Y="";continue}Y+=K}if(Y.trim())Z.push(Y.trim());return Z}function Sz($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=O0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function bz($){let Z=[],X=new q4($).tokenize().filter((Q)=>Q.type!=="WHITESPACE"&&Q.type!=="COMMENT"),J=0;while(J<X.length){let Q=X[J],G=!1;if(Q.type==="IDENTIFIER"&&Q.value==="export"){if(G=!0,J++,J>=X.length)break}let K=X[J];if(K.type==="IDENTIFIER"&&(K.value==="const"||K.value==="let"||K.value==="var")){let q=K.value;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let W=J<X.length?X[J].start:$.length,_=Q2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(W,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(z.type==="PUNCTUATION"&&(z.value==="{"||z.value==="[")){let U=z.start,W=z.value==="{"?"}":"]",_=O0($,z.value,W,U);if(_!==-1){let B=$.slice(U,_+1);if(J=G2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=Q2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${q} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let q=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let z=X[J];if(z.type==="IDENTIFIER"){let U=z.value;J++;let W=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){W=X[J].start;break}J++}if(W!==-1){let _=O0($,"{","}",W);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(q,_+1).replace(/^export\s+/,""),exported:G,start:q,end:_+1}),J=G2(X,_+1)}}}else J++}return Z}function Q2($,Z,Y){let X=Z,J={paren:0,bracket:0,brace:0},Q=Z<$.length?$[Z].start:Y.length;while(X<$.length){let G=$[X];if(G.type==="PUNCTUATION"){if(G.value==="(")J.paren++;else if(G.value===")")J.paren--;else if(G.value==="[")J.bracket++;else if(G.value==="]")J.bracket--;else if(G.value==="{")J.brace++;else if(G.value==="}")J.brace--;if(G.value===";"&&J.paren===0&&J.bracket===0&&J.brace===0){Q=G.start,X++;break}}if(G.type==="IDENTIFIER"&&(G.value==="const"||G.value==="let"||G.value==="var"||G.value==="function"||G.value==="export")){if(J.paren===0&&J.bracket===0&&J.brace===0){Q=$[X-1]?.end??G.start;break}}Q=G.end,X++}return{nextIndex:X,endPos:Q}}function G2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var q2=()=>{};var U4=b(()=>{J2();q2()});function yz($,Z,Y){let X=$,J=!0;while(J){J=!1;let Q=X.match(/@switch\s*\(/);if(!Q||Q.index===void 0)break;let G=Q.index,K=k7(X,G);if(!K)break;try{let q;if(Z0(K.expression))q=Y0(K.expression,Object.keys(Z))(...Object.values(Z));else q=$0(K.expression,Z);let z="",U=!1;for(let W of K.cases)if(W.type==="default"){if(!U)z=W.content.trim()}else try{let _;if(W.value&&Z0(W.value))_=Y0(W.value,Object.keys(Z))(...Object.values(Z));else if(W.value)_=$0(W.value,Z);if(q===_){z=W.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+z+X.substring(K.end),J=!0}catch(q){let z=q instanceof Error?q.message:String(q),U=a("Switch",`Error evaluating @switch expression: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function v1($,Z,Y){let X=$;X=yz(X,Z,Y);{let Q=!0;while(Q){Q=!1;let G=X.match(/@unless\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=j1(X,K+7);if(!q)break;let z=q.endPos,U=P1(X,"unless","endunless",z);if(U===-1){console.warn(`[stx] @unless directive at position ${K} has no matching @endunless \u2014 the block was skipped. Check for typos or missing closers.`);break}let W=X.slice(z,U),_=q.expression,B=-1;{let H=0,L=/@(?:if|unless)\s*\(/g,F=/@(?:endif|endunless)(?![a-z])/g,O=/@else(?![a-z])/g,V=[],A;while((A=L.exec(W))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(W))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(W))!==null)V.push({pos:A.index,type:"else"});V.sort((w,R)=>w.pos-R.pos);for(let w of V)if(w.type==="open")H++;else if(w.type==="close")H--;else if(w.type==="else"&&H===0){B=w.pos;break}}let j;if(B!==-1){let H=W.slice(0,B),L=W.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${W}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=b7(X,Z,Y),X=y7(X,Z,Y),X=S7(X,Z);let J=()=>{let Q=d5(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let q="",z=!1;for(let U of K.branches){if(z)break;if(U.type==="else")q=U.content,z=!0;else try{let W;if(U.condition&&Z0(U.condition))W=Y0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)W=$0(U.condition,Z);if(W)q=U.content,z=!0}catch(W){q=a(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${W instanceof Error?W.message:String(W)}`,c.EVALUATION_ERROR),z=!0}}X=X.substring(0,K.start)+q+X.substring(K.end)}catch(q){let z=q instanceof Error?q.message:String(q),U=a("If",`Error processing @if block: ${z}`,c.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function z2($){let Z=0;while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!=="(")return null;Z++;while(Z<$.length&&/\s/.test($[Z]))Z++;let Y=$[Z];if(Y!=="'"&&Y!=='"')return null;Z++;let X=[];while(Z<$.length){let J=$[Z];if(J==="\\"&&Z+1<$.length){X.push($[Z+1]),Z+=2;continue}if(J===Y){Z++;break}X.push(J),Z++}while(Z<$.length&&/\s/.test($[Z]))Z++;if($[Z]!==")")return null;return Z++,{value:X.join(""),consumed:Z}}function S7($,Z){let Y=$;function X(K,q,z,U){let W=1,_=U,B=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${z}(?![a-z])`,"g");while(_<K.length&&W>0){B.lastIndex=_,j.lastIndex=_;let H=B.exec(K),L=j.exec(K),F=H?H.index:1/0,O=L?L.index:1/0;if(F<O)W++,_=F+H[0].length;else if(O<1/0){if(W--,W===0)return O;_=O+L[0].length}else break}return-1}function J(K,q,z){let U=0,W=new RegExp(`@${q}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${z}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=W.exec(K))!==null)j.push({pos:H.index,type:"open"});while((H=_.exec(K))!==null)j.push({pos:H.index,type:"close"});while((H=B.exec(K))!==null)j.push({pos:H.index,type:"else"});j.sort((L,F)=>L.pos-F.pos);for(let L of j)if(L.type==="open")U++;else if(L.type==="close")U--;else if(L.type==="else"&&U===0)return L.pos;return-1}{let K=!0;while(K){K=!1;let q=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+5),B=z2(_);if(B)U=B.value,W=z+5+B.consumed;else W=z+5;let j=X(Y,"auth","endauth",W);if(j===-1){console.warn(`[stx] @auth directive at position ${z} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?B1(`auth?.check && auth?.user?.[${U}]`,Z):B1("auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let q=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!q||q.index===void 0)break;let z=q.index,U,W,_=Y.slice(z+6),B=z2(_);if(B)U=B.value,W=z+6+B.consumed;else W=z+6;let j=X(Y,"guest","endguest",W);if(j===-1){console.warn(`[stx] @guest directive at position ${z} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(W,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?B1(`!auth?.check || !auth?.user?.[${U}]`,Z):B1("!auth?.check",Z);let O;if(L!==-1){let V=H.slice(0,L),A=H.slice(L+5);O=F?V:A}else O=F?H:"";Y=Y.substring(0,z)+O+Y.substring(j+9),K=!0}}function Q(K,q,z){if(Z.userCan&&typeof Z.userCan[K]==="boolean")return Z.userCan[K];if(Z.permissions?.check&&typeof Z.permissions.check==="function")try{let U=[K];if(q)U.push(q);if(z){let W=B1(z,Z);U.push(W)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let q=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!q)return null;return{ability:q[1],type:q[2],id:q[3]?.trim(),paramsEnd:q[0].length}}for(let K of["can","cannot"]){let q=`end${K}`,z=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let W=Y.match(new RegExp(`@${K}\\s*\\(`));if(!W||W.index===void 0)break;let _=W.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,q,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${q} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${q}(?![a-z])`,"g"),R=new RegExp(`@${z}\\s*\\(`,"g"),N=/@else(?![a-z])/g,M=[],T;while((T=A.exec(F))!==null)M.push({pos:T.index,type:"open"});while((T=w.exec(F))!==null)M.push({pos:T.index,type:"close"});while((T=R.exec(F))!==null)M.push({pos:T.index,type:"elseDirective"});while((T=N.exec(F))!==null)M.push({pos:T.index,type:"else"});M.sort((y,P)=>y.pos-P.pos);for(let y of M){if(y.type==="open"){V++;continue}if(y.type==="close"){V--;continue}if(V===0)O.push(y)}let I=[],D=0;for(let y=0;y<O.length;y++){let P=O[y];if(I.push({content:F.slice(D,P.pos),ability:void 0}),P.type==="elseDirective"){let m=F.slice(P.pos+`@${z}`.length),g=G(m);if(g){I[I.length-1]={content:F.slice(D,P.pos)},D=P.pos+`@${z}`.length+g.paramsEnd,I.push({content:"",ability:g.ability,type:g.type,id:g.id}),I.pop();let u=O[y+1],s=u?u.pos:F.length;I.push({content:F.slice(D,s),ability:g.ability,type:g.type,id:g.id}),D=s}}else D=P.pos+5}if(D<F.length){let y=I[I.length-1];if(O.length>0&&O[O.length-1].type==="else")I.push({content:F.slice(D),isFinalElse:!0});else if(I.length===0)I.push({content:F.slice(D)})}let E=Q(j.ability,j.type,j.id),k=K==="can"?E:!E,S="";if(k)S=I[0]?.content||"";else{let y=!1;for(let P=1;P<I.length;P++){let m=I[P];if(m.isFinalElse){S=m.content,y=!0;break}if(m.ability){let g=Q(m.ability,m.type,m.id);if(K==="can"?g:!g){S=m.content,y=!0;break}}}if(!y&&I.length>0){let P=I[I.length-1];if(P.isFinalElse)S=P.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${q}`.length),U=!0}}return Y}function b7($,Z,Y){let X=$;function J(Q,G,K,q,z){let U=!0;while(U){U=!1;let W=new RegExp(`@${G}\\s*\\(`),_=Q.match(W);if(!_||_.index===void 0)break;let B=_.index,j=j1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=P1(Q,G,K,H);if(L===-1){console.warn(`[stx] @${G} directive at position ${B} has no matching @${K} \u2014 the block was skipped.`);break}let F=Q.slice(H,L),O=j.expression,V=-1,A=0,w=0;while(w<F.length){let R=F.indexOf("@",w);if(R===-1)break;let N=F.substring(R);if(/^@(?:if|unless|isset|empty)\s*\(/.test(N)){A++,w=R+1;continue}if(/^@(?:endif|endunless|endisset|endempty)(?![a-z])/.test(N)){A--,w=R+1;continue}if(A===0&&/^@else(?![a-z])/.test(N)){V=R;break}w=R+1}try{let R=q(O.trim()),N;if(V!==-1){let M=F.slice(0,V),T=F.slice(V+5);N=R?M:T}else N=R?F:"";Q=Q.substring(0,B)+N+Q.substring(L+`@${K}`.length),U=!0}catch(R){let N=R instanceof Error?R.message:String(R),M=a(z,`Error processing @${G} directive: ${N}`,c.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=B1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=B1(Q,Z);return G===void 0||G===null||G===""||G===0||G===!1||Array.isArray(G)&&G.length===0||typeof G==="object"&&G!==null&&Object.keys(G).length===0},"Empty"),X}function y7($,Z,Y){let X=$,J="development";function Q(G,K,q,z){let U=new RegExp(`@${K}(?![a-z])`,"g"),W=new RegExp(`@${q}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${q}(?![a-z])`),j=G,H=!0;while(H){H=!1,U.lastIndex=0;let L=U.exec(j);if(!L)break;let F=L.index,O=F+L[0].length;if(K==="env"){let E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,z=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,W.lastIndex=A;let E=U.exec(j),k=W.exec(j),S=E?E.index:1/0,y=k?k.index:1/0;if(S<y)V++,A=S+E[0].length;else if(y<1/0){if(V--,V===0){w=y;break}A=y+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${q} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let I;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);I=z?E:k}else I=z?R:"";let D=`@${q}`.length;j=j.substring(0,F)+I+j.substring(w+D),H=!0}return j}return X=Q(X,"env","endenv",!1),X=Q(X,"production","endproduction",J==="production"),X=Q(X,"development","enddevelopment",J==="development"),X=Q(X,"staging","endstaging",J==="staging"),X=Q(X,"testing","endtesting",J==="testing"),X}var W4=b(()=>{Z2();J1();U4();F0()});function U2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function x1($,Z){if(!$)return Z?.nonceGenerator?.()??U2();let Y=C7.get($);if(!Y)Y=Z?.nonceGenerator?.()??U2(),C7.set($,Y);return Y}function bw($){C7.delete($)}function W2($,Z){let Y=[];for(let[X,J]of Object.entries($)){if(J===void 0||J===null)continue;if(typeof J==="boolean"){if(J)Y.push(X);continue}if(Array.isArray(J)){let Q=[...J];if(Z&&(X==="script-src"||X==="style-src"))Q=Q.filter((G)=>!G.startsWith("'nonce-")),Q.push(`'nonce-${Z}'`);if(Q.length>0)Y.push(`${X} ${Q.join(" ")}`)}}return Y.join("; ")}function v7($,Z){return`<meta http-equiv="Content-Security-Policy" content="${W2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function yw($){return{enabled:!0,directives:{strict:Cz,moderate:P7,relaxed:Pz,api:vz}[$]||P7,useNonce:$==="strict",addMetaTag:!0}}function Cw($,Z){let Y={...$};for(let[X,J]of Object.entries(Z)){let Q=X,G=Y[Q];if(J===void 0||J===null)continue;if(typeof J==="boolean")Y[Q]=G||J;else if(Array.isArray(J)){let K=Array.isArray(G)?G:[],q=[...new Set([...K,...J])];Y[Q]=q}}return Y}function _2($,Z,Y){if(!Z.enabled||!Z.addMetaTag)return $;if($.includes('http-equiv="Content-Security-Policy"'))return $;if(!$.includes("<head>")&&!$.includes("<head "))return $;let X=Z.useNonce?x1(Y,Z):void 0,J=v7(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
3774
|
${J}`)}function Pw($,Z){let Y=$;return Y=Y.replace(/<script(?![^>]*\ssrc=)([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<script nonce="${Z}"${J}>`}),Y=Y.replace(/<style([^>]*)>/gi,(X,J)=>{if(J.includes("nonce="))return X;return`<style nonce="${Z}"${J}>`}),Y}function B2($,Z,Y,X){let J=$,Q=X.csp;if(J=J.replace(/@csp\b/g,()=>{if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?x1(Z,Q):void 0;return v7(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return x1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=x1(Z,Q);return J}function vw(){return[xz,fz]}function xw($){let Z=[];if($["script-src"]?.includes("'unsafe-inline'"))Z.push("CSP: Using unsafe-inline in script-src significantly reduces XSS protection");if($["script-src"]?.includes("'unsafe-eval'"))Z.push("CSP: Using unsafe-eval in script-src allows eval() and related functions");if(!$["default-src"])Z.push("CSP: No default-src specified. Recommend adding default-src as a fallback");if($["default-src"]?.includes("*"))Z.push("CSP: Using * in default-src provides minimal protection");if(!$["object-src"]&&!$["default-src"]?.includes("'none'"))Z.push("CSP: Consider adding object-src: none to block plugins");if(!$["base-uri"])Z.push("CSP: Consider adding base-uri to prevent base tag injection attacks");for(let[Y,X]of Object.entries($))if(Array.isArray(X)&&X.includes("http:"))Z.push(`CSP: Using http: in ${Y} allows insecure resources`);return Z}function gz($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function fw($,Z){if(!$.enabled)return{};let Y=$.useNonce?x1(Z,$):void 0,X=W2($.directives,Y);return{[gz($.reportOnly)]:X}}var C7,Cz,P7,Pz,vz,xz,fz,gw;var j2=b(()=>{C7=new WeakMap;Cz={"default-src":["'self'"],"script-src":["'self'","'strict-dynamic'"],"style-src":["'self'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'none'"],"base-uri":["'self'"],"form-action":["'self'"],"frame-ancestors":["'self'"],"upgrade-insecure-requests":!0},P7={"default-src":["'self'"],"script-src":["'self'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'","https:","data:"],"connect-src":["'self'","https:"],"media-src":["'self'"],"object-src":["'none'"],"frame-src":["'self'"],"base-uri":["'self'"],"form-action":["'self'"],"upgrade-insecure-requests":!0},Pz={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:","http:"],"font-src":["'self'","https:","http:","data:"],"connect-src":["'self'","https:","http:","ws:","wss:"],"media-src":["'self'","https:","http:"],"object-src":["'none'"],"frame-src":["'self'","https:"],"base-uri":["'self'"]},vz={"default-src":["'none'"],"frame-ancestors":["'none'"]};xz={name:"csp",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.directives)return"<!-- CSP not configured -->";let G=Q.useNonce?x1(Y,Q):void 0;return v7(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},fz={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return x1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};gw={enabled:!1,reportOnly:!1,directives:P7,useNonce:!1,addMetaTag:!0}});import{Buffer as H2}from"buffer";import O2 from"crypto";function dz($=hz){let Z=O2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return W5=Z,Z}function mz(){if(!W5)dz();return W5}function uw(){W5=null}function pw($){W5=$}function uz($=L2){let Z=mz();return`<input type="hidden" name="${$}" value="${Z}">`}function F2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return uz(X||L2)})}function lw($,Z){let Y=Z??W5;if(!Y)return!1;let X=H2.from($),J=H2.from(Y);if(X.length!==J.length)return!1;return O2.timingSafeEqual(X,J)}var hz=40,L2="_token",W5=null;var V2=()=>{};async function w2($,Z,Y,X){if(!X.customDirectives||X.customDirectives.length===0)return $;let J=$;for(let Q of X.customDirectives){if(!Q.name||typeof Q.handler!=="function"){if(X.debug)console.warn("Invalid custom directive:",Q);continue}if(Q.hasEndTag)J=await pz(J,Q,Z,Y,X);else J=await lz(J,Q,Z,Y,X)}return J}async function pz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,q=`@end${Q}`,z=$,U=D1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${q}`,"g"),W=[],_=U.exec(z);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?A2(j):[],O=H.trim(),V=await G(O,F,Y,X);W.push({original:B,processed:V,startIndex:L})}catch(F){let O=F instanceof Error?F.message:String(F);if(J.debug)console.error(`Error processing custom directive @${Q}:`,F);W.push({original:B,processed:a("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,c.EVALUATION_ERROR),startIndex:L})}_=U.exec(z)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];z=z.replace(j,H)}return z}async function lz($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,q=D1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),z=[],U=q.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=A2(j),F=await G("",L,Y,X);z.push({original:B,processed:F,startIndex:H})}catch(L){let F=L instanceof Error?L.message:String(L);if(J.debug)console.error(`Error processing custom directive @${Q}:`,L);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}(${j}): ${F}`,c.EVALUATION_ERROR),startIndex:H})}U=q.exec(K)}let W=D1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=W.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);z.push({original:B,processed:H,startIndex:j})}catch(H){let L=H instanceof Error?H.message:String(H);if(J.debug)console.error(`Error processing custom directive @${Q}:`,H);z.push({original:B,processed:a("CustomDirective",`Error in @${Q}: ${L}`,c.EVALUATION_ERROR),startIndex:j})}_=W.exec(K)}for(let B=z.length-1;B>=0;B--){let{original:j,processed:H}=z[B];K=K.replace(j,H)}return K}function A2($){if(!$.trim())return[];let Z=[],Y="",X=!1,J="";for(let Q=0;Q<$.length;Q++){let G=$[Q];if((G==='"'||G==="'")&&(Q===0||$[Q-1]!=="\\"))if(!X)X=!0,J=G;else if(G===J)X=!1;else Y+=G;else if(G===","&&!X)Z.push(Y.trim()),Y="";else Y+=G}if(Y.trim())Z.push(Y.trim());return Z.map((Q)=>{let G=Q.trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))return G.substring(1,G.length-1);return G})}var R2=b(()=>{J1();t1()});var x7={};l(x7,{useTitle:()=>rz,useSeoMeta:()=>B4,usePageTitle:()=>rz,useHead:()=>g1,resetHead:()=>nz,renderHtmlAttrs:()=>tz,renderHead:()=>az,renderBodyAttrs:()=>ez,processTitleDirective:()=>YU,processMetaDirective:()=>XU,processHeadDirective:()=>ZU,getPageMeta:()=>iz,getHead:()=>m5,definePageMeta:()=>sz,applyHead:()=>$U});function m5(){return H1}function iz(){return _4}function nz(){H1={},cz.length=0,_4={}}function g1($){H1=oz(H1,$)}function oz($,Z){return{title:Z.title??$.title,titleTemplate:Z.titleTemplate??$.titleTemplate,base:Z.base??$.base,meta:[...$.meta||[],...Z.meta||[]],link:[...$.link||[],...Z.link||[]],script:[...$.script||[],...Z.script||[]],style:[...$.style||[],...Z.style||[]],htmlAttrs:{...$.htmlAttrs,...Z.htmlAttrs},bodyAttrs:{...$.bodyAttrs,...Z.bodyAttrs}}}function B4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let q=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:q})}if($.author)Z.push({name:"author",content:$.author});if($.robots)Z.push({name:"robots",content:$.robots});let Y=$.ogTitle??$.title,X=$.ogDescription??$.description;if(Y)Z.push({property:"og:title",content:Y});if(X)Z.push({property:"og:description",content:X});if($.ogImage)Z.push({property:"og:image",content:$.ogImage});if($.ogUrl)Z.push({property:"og:url",content:$.ogUrl});if($.ogType)Z.push({property:"og:type",content:$.ogType});if($.ogSiteName)Z.push({property:"og:site_name",content:$.ogSiteName});if($.ogLocale)Z.push({property:"og:locale",content:$.ogLocale});let J=$.twitterTitle??$.title,Q=$.twitterDescription??$.description,G=$.twitterImage??$.ogImage;if($.twitterCard)Z.push({name:"twitter:card",content:$.twitterCard});if(J)Z.push({name:"twitter:title",content:J});if(Q)Z.push({name:"twitter:description",content:Q});if(G)Z.push({name:"twitter:image",content:G});if($.twitterSite)Z.push({name:"twitter:site",content:$.twitterSite});if($.twitterCreator)Z.push({name:"twitter:creator",content:$.twitterCreator});if($.articleAuthor)Z.push({property:"article:author",content:$.articleAuthor});if($.articlePublishedTime)Z.push({property:"article:published_time",content:$.articlePublishedTime});if($.articleModifiedTime)Z.push({property:"article:modified_time",content:$.articleModifiedTime});if($.articleSection)Z.push({property:"article:section",content:$.articleSection});if($.articleTags)for(let q of $.articleTags)Z.push({property:"article:tag",content:q});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});g1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function sz($){if(_4={..._4,...$},$.title||$.description)B4({title:$.title,description:$.description})}function rz($){let Z=typeof $==="function"?$():$;g1({title:Z})}function az($=H1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${f1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${f1(J)}"`).join(" ");Z.push(`<base ${Y}>`)}for(let Y of $.meta||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>{return`${J==="httpEquiv"?"http-equiv":J}="${f1(String(Q))}"`}).join(" ");Z.push(`<meta ${X}>`)}for(let Y of $.link||[]){let X=Object.entries(Y).filter(([J,Q])=>Q!==void 0).map(([J,Q])=>`${J}="${f1(String(Q))}"`).join(" ");Z.push(`<link ${X}>`)}for(let Y of $.script||[]){let{content:X,...J}=Y,Q=Object.entries(J).filter(([G,K])=>K!==void 0).map(([G,K])=>{if(typeof K==="boolean")return K?G:"";return`${G}="${f1(String(K))}"`}).filter(Boolean).join(" ");if(X)Z.push(`<script ${Q}>${X}</script>`);else Z.push(`<script ${Q}></script>`)}for(let Y of $.style||[]){let X=Y.type?` type="${Y.type}"`:"";Z.push(`<style${X}>${Y.content}</style>`)}return Z.join(`
|
|
3775
3775
|
`)}function tz($=H1){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${f1(Y)}"`).join(" ")}function ez($=H1){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${f1(Y)}"`).join(" ")}function f1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $U($=H1){if(typeof document>"u")return;if($.title){let Z=$.title;if($.titleTemplate)Z=typeof $.titleTemplate==="function"?$.titleTemplate(Z):$.titleTemplate.replace("%s",Z);document.title=Z}for(let Z of $.meta||[]){let Y=Z.name?`meta[name="${Z.name}"]`:Z.property?`meta[property="${Z.property}"]`:null;if(Y){let X=document.querySelector(Y);if(!X){if(X=document.createElement("meta"),Z.name)X.setAttribute("name",Z.name);if(Z.property)X.setAttribute("property",Z.property);document.head.appendChild(X)}X.setAttribute("content",Z.content)}}for(let Z of $.link||[]){let Y=`link[rel="${Z.rel}"]${Z.href?`[href="${Z.href}"]`:""}`,X=document.querySelector(Y);if(!X)X=document.createElement("link"),document.head.appendChild(X);for(let[J,Q]of Object.entries(Z))if(Q!==void 0)X.setAttribute(J,String(Q))}if($.htmlAttrs)for(let[Z,Y]of Object.entries($.htmlAttrs))document.documentElement.setAttribute(Z,Y);if($.bodyAttrs)for(let[Z,Y]of Object.entries($.bodyAttrs))document.body.setAttribute(Z,Y)}function ZU($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
|
|
3776
3776
|
`,""}),headContent:Z.trim()}}function YU($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return g1({title:G}),""})}function XU($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let q=Q?G:K,z=Q?q:Z[(q||"").trim()]??q,W=J.includes(":")?{property:J,content:z}:{name:J,content:z};return g1({meta:[W]}),""})}var H1,cz,_4;var u5=b(()=>{H1={},cz=[],_4={}});import JU from"crypto";function w0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function QU($){return{...f7,...$.forms?.classes}}function j4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function GU(){return JU.randomUUID()}function aw($,Z,Y,X){let J=QU(X),Q=$;return Q=qU(Q,Z),Q=c5(Q,Z),Q=g7(Q,Z,J),Q=h7(Q,Z,J),Q}function c5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=GU();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${w0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Y=Y.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,J)=>{let Q=J.toUpperCase();if(J&&!["GET","POST"].includes(Q))return`<input type="hidden" name="_method" value="${w0(Q)}">`;return X}),Y}function g7($,Z,Y=f7){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,q,z="")=>{let U=Q||G||"POST",W=K||q||"",_=O1(z),B=U.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",H=`<form method="${w0(j)}" action="${w0(W)}"${_?` ${_}`:""}>`;if(H+=`
|
|
@@ -4020,8 +4020,8 @@ else {
|
|
|
4020
4020
|
${q?`{${q}}`:"{}"}
|
|
4021
4021
|
</script>
|
|
4022
4022
|
</div>`}}});var u2={};l(u2,{warnUnbalancedTags:()=>a7,findUnbalancedTags:()=>m2});function L1($){return $.replace(/[^\n]/g," ")}function m2($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,L1).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,L1).replace(/<!--[\s\S]*?-->/g,L1).replace(/\{\{\{[\s\S]*?\}\}\}/g,L1).replace(/\{\{[\s\S]*?\}\}/g,L1).replace(/\{!![\s\S]*?!!\}/g,L1).replace(/"[^"]*"/g,L1).replace(/'[^']*'/g,L1),Y=new Map,X=new Map,J=/<(\/?)([A-Za-z][\w-]*)\b[^>]*?(\/?)>/g,Q;while((Q=J.exec(Z))!==null){let K=Q[1]==="/",q=Q[2],z=Q[3]==="/";if($W.has(q.toLowerCase()))continue;if(z)continue;if(K)X.set(q,(X.get(q)??0)+1);else{let U=Y.get(q);if(U)U.count++;else{let W=Z.slice(0,Q.index).split(`
|
|
4023
|
-
`).length;Y.set(q,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(ZW.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,z=X.get(K)??0;if(q!==z)G.push({tag:K,opened:q,closed:z,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function a7($,Z){let Y;try{Y=m2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(d2.has(X))return;d2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let z=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${z} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var $W,ZW,d2;var t7=b(()=>{$W=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),ZW=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);d2=new Set});import h0 from"path";import e7 from"fs";function p2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function l2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class c2{builtins=new Map;registerBuiltin($){this.builtins.set($.name.toLowerCase(),$);for(let Z of $.aliases)this.builtins.set(Z.toLowerCase(),$)}isBuiltin($){return this.builtins.has($.toLowerCase())}getBuiltin($){return this.builtins.get($.toLowerCase())??null}async resolveFile($,Z,Y,X){let J=$.endsWith(".stx")?$.slice(0,-4):$,Q=X?.__importedComponents;if(Q){let B=[J,J.toLowerCase(),p2(J),l2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${p2(J)}.stx`,`${l2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=h0.resolve(h0.dirname(Z),`${J}.stx`);if(await n(B))return B;return null}let K=[],q=Y.componentsDir||"",z=X?.__originalFilePath;if(z)K.push(h0.join(h0.dirname(z),"components"));if(q)K.push(q);let U=h0.join(h0.dirname(Z),"components");if(!K.includes(U))K.push(U);let W=process.cwd(),_=[h0.resolve(W,"src/components"),h0.resolve(W,"components"),h0.resolve(import.meta.dir,"components")];for(let B of _)if(!K.includes(B))K.push(B);for(let B of K){if(!B)continue;for(let j of G){let H=h0.join(B,j);if(await n(H))return H}try{if(!e7.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=e7.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=h0.join(B,L.name);for(let O of G){let V=h0.join(F,O);if(await n(V))return V}}}catch{}}return null}}var S0;var $6=b(()=>{V0();S0=new c2});function F1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function YW($){if($.clientReactive.to)return{value:$.clientReactive.to,reactive:!0};if($.serverDynamic.to!==void 0)return{value:String($.serverDynamic.to),reactive:!1};if(typeof $.static.to==="string")return{value:$.static.to,reactive:!1};return{value:"#",reactive:!1}}var Z6;var Y6=b(()=>{Z6={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=YW($),J=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(X.reactive)q.push(`:href="${F1(X.value)}"`);else q.push(`href="${F1(X.value)}"`);if(J)q.push(`class="${F1(J)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${F1(Q)}"`),q.push(`data-stx-exact-active-class="${F1(G)}"`),K)q.push("data-stx-prefetch");let z=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,W]of Object.entries($.static)){if(z.has(U))continue;if(typeof W==="boolean"){if(W)q.push(F1(U))}else q.push(`${F1(U)}="${F1(W)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function _0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function
|
|
4024
|
-
`}if(V){let S=[];if(U==="avif"||U==="auto"){let y=o5(X,A,w,B,"avif"),
|
|
4023
|
+
`).length;Y.set(q,{count:1,firstLine:W})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(ZW.has(K.toLowerCase()))continue;let q=Y.get(K)?.count??0,z=X.get(K)??0;if(q!==z)G.push({tag:K,opened:q,closed:z,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function a7($,Z){let Y;try{Y=m2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(d2.has(X))return;d2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:q}of Y)if(G>K){let z=q?` (first opened at line ${q})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${z} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var $W,ZW,d2;var t7=b(()=>{$W=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),ZW=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);d2=new Set});import h0 from"path";import e7 from"fs";function p2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function l2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class c2{builtins=new Map;registerBuiltin($){this.builtins.set($.name.toLowerCase(),$);for(let Z of $.aliases)this.builtins.set(Z.toLowerCase(),$)}isBuiltin($){return this.builtins.has($.toLowerCase())}getBuiltin($){return this.builtins.get($.toLowerCase())??null}async resolveFile($,Z,Y,X){let J=$.endsWith(".stx")?$.slice(0,-4):$,Q=X?.__importedComponents;if(Q){let B=[J,J.toLowerCase(),p2(J),l2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${p2(J)}.stx`,`${l2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=h0.resolve(h0.dirname(Z),`${J}.stx`);if(await n(B))return B;return null}let K=[],q=Y.componentsDir||"",z=X?.__originalFilePath;if(z)K.push(h0.join(h0.dirname(z),"components"));if(q)K.push(q);let U=h0.join(h0.dirname(Z),"components");if(!K.includes(U))K.push(U);let W=process.cwd(),_=[h0.resolve(W,"src/components"),h0.resolve(W,"components"),h0.resolve(import.meta.dir,"components")];for(let B of _)if(!K.includes(B))K.push(B);for(let B of K){if(!B)continue;for(let j of G){let H=h0.join(B,j);if(await n(H))return H}try{if(!e7.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=e7.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=h0.join(B,L.name);for(let O of G){let V=h0.join(F,O);if(await n(V))return V}}}catch{}}return null}}var S0;var $6=b(()=>{V0();S0=new c2});function F1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function YW($){if($.clientReactive.to)return{value:$.clientReactive.to,reactive:!0};if($.serverDynamic.to!==void 0)return{value:String($.serverDynamic.to),reactive:!1};if(typeof $.static.to==="string")return{value:$.static.to,reactive:!1};return{value:"#",reactive:!1}}var Z6;var Y6=b(()=>{Z6={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=YW($),J=(typeof $.static.class==="string"?$.static.class:"")||(typeof $.static.className==="string"?$.static.className:""),Q=typeof $.static.activeClass==="string"?$.static.activeClass:"active",G=typeof $.static.exactActiveClass==="string"?$.static.exactActiveClass:"exact-active",K=$.static.prefetch===!0||$.static.prefetch==="true"||$.serverDynamic.prefetch===!0,q=[];if(X.reactive)q.push(`:href="${F1(X.value)}"`);else q.push(`href="${F1(X.value)}"`);if(J)q.push(`class="${F1(J)}"`);if(q.push("data-stx-link"),q.push(`data-stx-active-class="${F1(Q)}"`),q.push(`data-stx-exact-active-class="${F1(G)}"`),K)q.push("data-stx-prefetch");let z=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,W]of Object.entries($.static)){if(z.has(U))continue;if(typeof W==="boolean"){if(W)q.push(F1(U))}else q.push(`${F1(U)}="${F1(W)}"`)}return`<a ${q.join(" ")}>${Z}</a>`}}});function _0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function D0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function J6($,Z,Y=!1){let X=$.serverDynamic[Z];if(X!==void 0)return X!==!1&&X!=="false";let J=$.static[Z];if(J!==void 0)return J!=="false"&&J!==!1;return Y}function i2($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=XW[J];if(G)Y.push(`(max-width: ${G}px) ${Q}`);else{let K=Number.parseInt(J);if(!Number.isNaN(K))Y.push(`(max-width: ${K}px) ${Q}`)}}else Y.push(X);return Y.join(", ")}function Q6($,Z,Y,X){return Z.map((J)=>`${o5($,J,void 0,Y,X)} ${J}w`).join(", ")}function JW($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${o5($,G,void 0,X,J)} ${Q}x`}).join(", ")}function o5($,Z,Y,X,J){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(Y)Q.push(`h_${Y}`);if(J)Q.push(`f_${J}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(Y)Q.set("h",String(Y));if(J)Q.set("fm",J);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(Y)Q.set("height",String(Y));if(J)Q.set("format",J);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function QW($,Z,Y="#e5e7eb"){let X=`<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${Z}"><rect width="100%" height="100%" fill="${Y}"/></svg>`;return`data:image/svg+xml;base64,${btoa(X)}`}var XW,X6,G6;var K6=b(()=>{XW={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},X6=[320,640,768,1024,1280,1536,1920];G6={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=D0($,"src")||"",J=D0($,"alt")||"",Q=D0($,"width"),G=D0($,"height"),K=D0($,"sizes"),q=D0($,"srcset"),z=D0($,"densities"),U=D0($,"format"),W=D0($,"placeholder"),_=D0($,"placeholderColor")||"#e5e7eb",B=D0($,"provider"),j=D0($,"class")||D0($,"className")||"",H=D0($,"style")||"",L=D0($,"quality"),F=J6($,"lazy",!0),O=J6($,"preload",!1),V=J6($,"picture",!1)||!!U,A=Q?Number.parseInt(Q):void 0,w=G?Number.parseInt(G):void 0,R=q||"",N="";if(!R&&K)R=Q6(X,X6,B,U),N=i2(K);else if(!R&&z){let S=z.split(/\s+/).map((y)=>Number.parseFloat(y.replace("x","")));R=JW(X,S,A,B,U)}else if(K)N=i2(K);let M=[];if(H)M.push(H);if(A&&w)M.push(`aspect-ratio:${A}/${w}`);if(W==="blur"||W==="color"||W==="thumbhash"){let S=QW(A||16,w||9,_);M.push(`background-image:url(${S})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat")}else if(W&&W!=="empty"&&W!=="none")M.push(`background-image:url(${_0(W)})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat");let T=o5(X,A,w,B,U),I=[];if(I.push(`src="${_0(T)}"`),I.push(`alt="${_0(J)}"`),Q)I.push(`width="${_0(Q)}"`);if(G)I.push(`height="${_0(G)}"`);if(F)I.push('loading="lazy"');if(I.push('decoding="async"'),j)I.push(`class="${_0(j)}"`);if(M.length>0)I.push(`style="${_0(M.join(";"))}"`);if(R)I.push(`srcset="${_0(R)}"`);if(N)I.push(`sizes="${_0(N)}"`);let D=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[S,y]of Object.entries($.static)){if(D.has(S))continue;if(typeof y==="boolean"){if(y)I.push(_0(S))}else I.push(`${_0(S)}="${_0(y)}"`)}let E=`<img ${I.join(" ")} />`,k="";if(O){let y=U==="webp"?"image/webp":U==="avif"?"image/avif":"";k=`<link rel="preload" as="image" href="${_0(T)}"${y?` type="${y}"`:""}${R?` imagesrcset="${_0(R)}"`:""}${N?` imagesizes="${_0(N)}"`:""} />
|
|
4024
|
+
`}if(V){let S=[];if(U==="avif"||U==="auto"){let y=o5(X,A,w,B,"avif"),P=R?Q6(X,X6,B,"avif"):`${y}`;S.push(`<source type="image/avif" srcset="${_0(P)}"${N?` sizes="${_0(N)}"`:""} />`)}if(U==="webp"||U==="auto"){let y=o5(X,A,w,B,"webp"),P=R?Q6(X,X6,B,"webp"):`${y}`;S.push(`<source type="image/webp" srcset="${_0(P)}"${N?` sizes="${_0(N)}"`:""} />`)}return`${k}<picture>
|
|
4025
4025
|
${S.join(`
|
|
4026
4026
|
`)}
|
|
4027
4027
|
${E}
|
|
@@ -4169,15 +4169,15 @@ document.addEventListener("focusout",function(e){
|
|
|
4169
4169
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
4170
4170
|
<script>
|
|
4171
4171
|
(function(){var el=document.getElementById('stx-loading-indicator'),p=0,l=!1,i=null;function u(v){p=Math.min(Math.max(v,0),100);if(el){el.style.opacity=p>0?'1':'0';el.style.transform='scaleX('+(p/100)+')'}}window.stxLoading={start:function(){l=!0;p=0;u(10);if(i)clearInterval(i);i=setInterval(function(){if(!l)return;var r=90-p,inc=Math.max(0.5,r*0.1);if(p<90)u(p+inc)},${j.throttle})},finish:function(){l=!1;if(i){clearInterval(i);i=null}u(100);setTimeout(function(){if(el)el.style.opacity='0';setTimeout(function(){p=0;if(el)el.style.transform='scaleX(0)'},300)},200)},set:function(v){u(v)},clear:function(){l=!1;p=0;if(i){clearInterval(i);i=null}if(el){el.style.opacity='0';el.style.transform='scaleX(0)'}}};document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a');if(!a)return;var h=a.getAttribute('href');if(!h||h.startsWith('http')||h.startsWith('#')||h.startsWith('mailto:')||h.startsWith('tel:')||a.target==='_blank')return;window.stxLoading.start()});window.addEventListener('popstate',function(){window.stxLoading.start()});window.addEventListener('load',function(){window.stxLoading.finish()})})();
|
|
4172
|
-
</script>`}),J}async function qR($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[H5.resolve(H5.dirname(Y),`${_}.stx`),H5.resolve(H5.dirname(Y),_),H5.resolve(X.componentsDir||"components",`${_}.stx`),H5.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(z,""),K.lastIndex=0}return Q}async function zR($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(G))!==null){let U=z.index,W=U+z[0].length-1,_=1,B=W+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=j0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=G.substring(U,N),D=await K1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),q.lastIndex=0}return G}async function UR($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]),z=V$(G);return G=z.output,G=await B(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await B(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await B(G,/[a-z][a-z0-9]*/,!1,q),G=w$(G,z.scripts),G;async function B(j,H,L,F){let O=j,V=M6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?T6(w.tagName):w.tagName,N=jW(w.attributes),M={};for(let[I,D]of Object.entries(N)){if(I.startsWith("@"))continue;if(I.startsWith("__stx_")){let E=I.slice(6);M[E]=I6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),k=D==="true"?E:D;try{if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=D}else{let S=Y0(k,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=D}continue}if(typeof D==="string"&&D.includes("{{")&&D.includes("}}")){let E=D.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let k=E[1];if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in ${I}: ${k}`);M[I]=D}else{let S=Y0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${I}:`,k);M[I]=D}else{let k=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,y;while((y=S.exec(D))!==null)try{let C=y[1];if(!Z0(C)){if(J.debug)console.error(`Unsafe expression in ${I}: ${C}`);continue}let g=Y0(C,Object.keys(Z))(...Object.values(Z));k=k.replace(y[0],String(g??""))}catch(C){if(J.debug)console.error(`Error evaluating expression in ${I}:`,C)}M[I]=k}}else M[I]=D}let T=await K1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var XY=b(()=>{F0();V0();A$()});var zY={};l(zY,{processESImports:()=>qY,processComponents:()=>N4});import R4 from"fs";import v0 from"path";function OW($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let z=Q(q.slice(6));X.serverDynamic[z]=I6(K,Y);continue}if(q.startsWith(":")){let z=Q(q.slice(1)),U=K==="true"?z:K;try{if(!Z0(U)){if(Y.debug)console.error(`Unsafe expression in :${z} binding: ${U}`);X.clientReactive[z]=U;continue}let W=Object.keys(Z),B=Y0(U,W)(...Object.values(Z));if(B===void 0){let j=U.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((F)=>!H.has(F)&&!W.includes(F))){X.clientReactive[z]=U;continue}}X.serverDynamic[z]=B}catch{X.clientReactive[z]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let z=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let U=z[1];if(Z0(U)){let _=Y0(U,Object.keys(Z))(...Object.values(Z));X.static[q]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${U}`);X.static[q]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,U);X.static[q]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!Z0(B)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${B}`);continue}let H=Y0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,B)}X.static[q]=U}continue}X.static[q]=K}return X}function LW($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function QY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function FW($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(S0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function VW($){let Z=GY.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=R4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let q of K){let z=v0.join(Q,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;J(z,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let U=q.name.slice(0,-4);if(!Y.has(U))Y.set(U,z);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,z);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,z)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return GY.set($,Y),Y}function wW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(R4.statSync(X).isDirectory())return X}catch{}let J=v0.dirname(Y);if(J===Y)return null;Y=J}}async function qY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=v0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(z,U,W)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=W,j,H=[];while((j=_.exec(W))!==null){let[L,F,O,V]=j,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=v0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(R4.statSync(T).isFile())w=T}catch{try{if(R4.statSync(M).isDirectory())A=M}catch{}}}}else A=wW(V,G);if(!A&&!w)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let I=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,T),J.add(T)};if(O&&w)N(O,w),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),T=A?VW(A):null;for(let{source:I,local:D}of M){let E=null;if(w)E=w;else if(T)E=T.get(I)??T.get(I.toLowerCase())??T.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(D,E),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return z;for(let L=H.length-1;L>=0;L--)B=B.slice(0,H[L].start)+B.slice(H[L].end);return`<script${U}>${B}</script>`}),K}async function AW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[v0.resolve(v0.dirname(Y),`${_}.stx`),v0.resolve(v0.dirname(Y),_),v0.resolve(X.componentsDir||"components",`${_}.stx`),v0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(z,""),K.lastIndex=0}return Q}async function RW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(Q))!==null){let U=z.index,W=U+z[0].length-1,_=1,B=W+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=j0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=await K1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),q.lastIndex=0}return Q}async function NW($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=V$(Q);return Q=q.output,Q=await _(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await _(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await _(Q,/[a-z][a-z0-9]*/,!1,HW),Q=w$(Q,q.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=M6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?T6(A.tagName):A.tagName,R=LW(A.attributes),N=OW(R,Z,X),M=S0.getBuiltin(A.tagName),T=M?await UY(w,G,Z,Y,X):!1;if(M&&!T){let k={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,A.content,k);if(Object.keys(N.clientReactive).length>0)S=KY(S,N.clientReactive);if(Object.keys(N.events).length>0){let y=Object.entries(N.events).map(([C,m])=>`${C}="${QY(m)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let I={};for(let[k,S]of Object.entries(N.static))I[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))I[k]=S;let E=await K1(w,I,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=KY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([C,m])=>`${C}="${QY(m)}"`).join(" "),y=k[1].length+k[2].length;E=E.substring(0,y)+" "+S+E.substring(y)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function KY($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,""")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function N4($,Z,Y,X,J){if(!JY)ZY(),JY=!0;let Q=await qY($,Z,Y,X,J);Q=await AW(Q,Z,Y,X,J),Q=await RW(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await NW(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=FW(Q);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return Q}var JY=!1,HW,GY;var D6=b(()=>{$6();YY();XY();V0();F0();HW=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]);GY=new Map});var T4={};l(T4,{stripTypeScript:()=>HY,hasVariables:()=>wY,extractVariables:()=>d1,extractScriptFromTemplate:()=>VY,convertToCommonJS:()=>k6});import O5 from"path";import r5 from"process";function TW($){let Z=[],Y=0,X=$.split(`
|
|
4172
|
+
</script>`}),J}async function qR($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[H5.resolve(H5.dirname(Y),`${_}.stx`),H5.resolve(H5.dirname(Y),_),H5.resolve(X.componentsDir||"components",`${_}.stx`),H5.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(z,""),K.lastIndex=0}return Q}async function zR($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(G))!==null){let U=z.index,W=U+z[0].length-1,_=1,B=W+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=j0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=G.substring(U,N),D=await K1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+D+G.substring(N),q.lastIndex=0}return G}async function UR($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]),z=V$(G);return G=z.output,G=await B(G,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),G=await B(G,/[A-Z][a-zA-Z0-9]*/,!0),G=await B(G,/[a-z][a-z0-9]*/,!1,q),G=w$(G,z.scripts),G;async function B(j,H,L,F){let O=j,V=M6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?T6(w.tagName):w.tagName,N=jW(w.attributes),M={};for(let[I,D]of Object.entries(N)){if(I.startsWith("@"))continue;if(I.startsWith("__stx_")){let E=I.slice(6);M[E]=I6(D,J);continue}if(I.startsWith(":")){let E=I.slice(1),k=D==="true"?E:D;try{if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=D}else{let S=Y0(k,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=D}continue}if(typeof D==="string"&&D.includes("{{")&&D.includes("}}")){let E=D.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let k=E[1];if(!Z0(k)){if(J.debug)console.error(`Unsafe expression in ${I}: ${k}`);M[I]=D}else{let S=Y0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${I}:`,k);M[I]=D}else{let k=D,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,y;while((y=S.exec(D))!==null)try{let P=y[1];if(!Z0(P)){if(J.debug)console.error(`Unsafe expression in ${I}: ${P}`);continue}let g=Y0(P,Object.keys(Z))(...Object.values(Z));k=k.replace(y[0],String(g??""))}catch(P){if(J.debug)console.error(`Error evaluating expression in ${I}:`,P)}M[I]=k}}else M[I]=D}let T=await K1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var XY=b(()=>{F0();V0();A$()});var zY={};l(zY,{processESImports:()=>qY,processComponents:()=>N4});import R4 from"fs";import v0 from"path";function OW($,Z,Y){let X={static:{},serverDynamic:{},clientReactive:{},events:{}},J=new Set(["x-cloak","x-show","x-if","x-for","x-data","x-init","x-transition","x-ref","x-effect","x-model","x-text","x-html","x-class","x-style","x-on","x-bind"]),Q=(G)=>{if(!G.includes("-")||G.startsWith("@")||G.startsWith(":")||G.startsWith("x-")||G.startsWith("__"))return G;return G.replace(/-([a-z0-9])/g,(K,q)=>q.toUpperCase())};for(let[G,K]of Object.entries($)){let q=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(q.startsWith("@")){X.events[q]=K;continue}if(q.startsWith("__stx_")){let z=Q(q.slice(6));X.serverDynamic[z]=I6(K,Y);continue}if(q.startsWith(":")){let z=Q(q.slice(1)),U=K==="true"?z:K;try{if(!Z0(U)){if(Y.debug)console.error(`Unsafe expression in :${z} binding: ${U}`);X.clientReactive[z]=U;continue}let W=Object.keys(Z),B=Y0(U,W)(...Object.values(Z));if(B===void 0){let j=U.match(/\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g)||[],H=new Set(["true","false","null","undefined","typeof","instanceof","in","of","new","this","return","void","delete","throw","if","else"]);if(j.some((F)=>!H.has(F)&&!W.includes(F))){X.clientReactive[z]=U;continue}}X.serverDynamic[z]=B}catch{X.clientReactive[z]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let z=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(z)try{let U=z[1];if(Z0(U)){let _=Y0(U,Object.keys(Z))(...Object.values(Z));X.static[q]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${q}: ${U}`);X.static[q]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${q}:`,U);X.static[q]=K}else{let U=K,W=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=W.exec(K))!==null)try{let B=_[1];if(!Z0(B)){if(Y.debug)console.error(`Unsafe expression in ${q}: ${B}`);continue}let H=Y0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${q}:`,B)}X.static[q]=U}continue}X.static[q]=K}return X}function LW($){let Z={},Y=0,X=$.length;while(Y<X){while(Y<X&&/\s/.test($[Y]))Y++;if(Y>=X)break;let J="";while(Y<X&&!/[\s=]/.test($[Y]))J+=$[Y],Y++;if(!J)break;while(Y<X&&/\s/.test($[Y]))Y++;if(Y<X&&$[Y]==="="){Y++;while(Y<X&&/\s/.test($[Y]))Y++;let Q="";if(Y<X&&($[Y]==='"'||$[Y]==="'")){let G=$[Y];Y++;while(Y<X){let K=$[Y];if(K==="\\"&&Y+1<X){Y++,Q+=$[Y],Y++;continue}if(K===G){Y++;break}Q+=K,Y++}}else while(Y<X&&!/\s/.test($[Y]))Q+=$[Y],Y++;Z[J]=Q}else Z[J]="true"}return Z}function QY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function FW($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(S0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function VW($){let Z=GY.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=R4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let q of K){let z=v0.join(Q,q.name);if(q.isDirectory()){if(q.name==="node_modules"||q.name.startsWith("."))continue;J(z,G+1)}else if(q.isFile()&&q.name.endsWith(".stx")){let U=q.name.slice(0,-4);if(!Y.has(U))Y.set(U,z);let W=U.toLowerCase();if(!Y.has(W))Y.set(W,z);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,z)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return GY.set($,Y),Y}function wW($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(R4.statSync(X).isDirectory())return X}catch{}let J=v0.dirname(Y);if(J===Y)return null;Y=J}}async function qY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=v0.dirname(Y),K=$,q=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(q,(z,U,W)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=W,j,H=[];while((j=_.exec(W))!==null){let[L,F,O,V]=j,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=v0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(R4.statSync(T).isFile())w=T}catch{try{if(R4.statSync(M).isDirectory())A=M}catch{}}}}else A=wW(V,G);if(!A&&!w)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let I=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(I,T),J.add(T)};if(O&&w)N(O,w),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((I)=>I.trim()).filter(Boolean).map((I)=>{let D=I.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(D)return{source:D[1],local:D[2]};return{source:I,local:I}}),T=A?VW(A):null;for(let{source:I,local:D}of M){let E=null;if(w)E=w;else if(T)E=T.get(I)??T.get(I.toLowerCase())??T.get(I.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(D,E),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return z;for(let L=H.length-1;L>=0;L--)B=B.slice(0,H[L].start)+B.slice(H[L].end);return`<script${U}>${B}</script>`}),K}async function AW($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,q;while((q=K.exec(Q))!==null){let[z,U]=q,W=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of W){let B=_.split("/"),H=B[B.length-1].replace(/\.stx$/,""),L=H.includes("-")?H.split("-").map((V)=>V.charAt(0).toUpperCase()+V.slice(1)).join(""):H.charAt(0).toUpperCase()+H.slice(1),F=null,O=[v0.resolve(v0.dirname(Y),`${_}.stx`),v0.resolve(v0.dirname(Y),_),v0.resolve(X.componentsDir||"components",`${_}.stx`),v0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(z,""),K.lastIndex=0}return Q}async function RW($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=/@component\s*\(/g,z;while((z=q.exec(Q))!==null){let U=z.index,W=U+z[0].length-1,_=1,B=W+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(W+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){q.lastIndex=0;continue}let F=L[1],O,V=j.slice(L[0].length),A=V.match(/^\s*,\s*/);if(A)O=V.slice(A[0].length).trim();let w={};if(O)try{w=j0(O,Z)}catch(D){let E=D instanceof Error?D.message:String(D);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let I=await K1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+I+Q.substring(N),q.lastIndex=0}return Q}async function NW($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,q=V$(Q);return Q=q.output,Q=await _(Q,/[a-z][a-z0-9]*-[a-z0-9-]*/,!1),Q=await _(Q,/[A-Z][a-zA-Z0-9]*/,!0),Q=await _(Q,/[a-z][a-z0-9]*/,!1,HW),Q=w$(Q,q.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=M6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?T6(A.tagName):A.tagName,R=LW(A.attributes),N=OW(R,Z,X),M=S0.getBuiltin(A.tagName),T=M?await UY(w,G,Z,Y,X):!1;if(M&&!T){let k={context:Z,filePath:Y,options:X,dependencies:J},S=M.render(N,A.content,k);if(Object.keys(N.clientReactive).length>0)S=KY(S,N.clientReactive);if(Object.keys(N.events).length>0){let y=Object.entries(N.events).map(([P,m])=>`${P}="${QY(m)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${y}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let I={};for(let[k,S]of Object.entries(N.static))I[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))I[k]=S;let E=await K1(w,I,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=KY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([P,m])=>`${P}="${QY(m)}"`).join(" "),y=k[1].length+k[2].length;E=E.substring(0,y)+" "+S+E.substring(y)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function KY($,Z){let Y=$.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(!Y)return $;let X=Object.entries(Z).map(([Q,G])=>`:${Q}="${G.replace(/"/g,""")}"`).join(" "),J=Y[1].length+Y[2].length;return $.substring(0,J)+" "+X+$.substring(J)}async function N4($,Z,Y,X,J){if(!JY)ZY(),JY=!0;let Q=await qY($,Z,Y,X,J);Q=await AW(Q,Z,Y,X,J),Q=await RW(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await NW(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=FW(Q);if(G.length>0)console.warn(`[stx] ${Y}: unresolved component tag(s) after render passes: ${G.join(", ")}. Check nested component output for malformed root tags or recursive component markup.`)}return Q}var JY=!1,HW,GY;var D6=b(()=>{$6();YY();XY();V0();F0();HW=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]);GY=new Map});var T4={};l(T4,{stripTypeScript:()=>HY,hasVariables:()=>wY,extractVariables:()=>d1,extractScriptFromTemplate:()=>VY,convertToCommonJS:()=>k6});import O5 from"path";import r5 from"process";function TW($){let Z=[],Y=0,X=$.split(`
|
|
4173
4173
|
`);for(let J of X){let Q=Y,G=null,K=!1;for(let q=0;q<J.length;q++){let z=J[q];if(K){K=!1;continue}if(z==="\\"){K=!0;continue}if(G){if(z===G)G=null;continue}if(z==="'"||z==='"'||z==="`"){G=z;continue}if(z==="/"&&q+1<J.length&&J[q+1]==="/")break;if(z==="{")Y++;else if(z==="}")Y--}if(Q===0){let q=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(q)Z.push(q[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let z=J.match(/(?:const|let|var)\s+(\w+)/);if(z)Z.push(z[1])}else{let z=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(z){let W=z[1].slice(1,-1).split(",").map((_)=>{let B=_.split(":");return(B.length>1?B[1]:B[0]).trim()}).filter((_)=>/^\w+$/.test(_));Z.push(...W)}}}}return[...new Set(Z)]}function HY($){let Z=$;Z=Z.replace(/^\s*import\s+.*?from\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*import\s+['"][^'"]+['"]\s*;?\s*$/gm,""),Z=Z.replace(/^\s*interface\s+\w+\s*\{[\s\S]*?\n\}\s*$/gm,""),Z=Z.replace(/^\s*type\s+\w+\s*=[\s\S]*?(?=\n(?:const|let|var|function|export|interface|type|$))/gm,""),Z=Z.replace(/^(\s*(?:export\s+)?(?:const|let|var)\s+)(\w+|\{[^}]+\}|\[[^\]]+\])\s*:\s*[^=]+(\s*=)/gm,"$1$2$3");function Y(X){if(!X.includes(":"))return X;let J=[],Q="",G=0,K=0,q=null;for(let z=0;z<X.length;z++){let U=X[z];if(q){if(Q+=U,U===q)q=null;continue}if(U==='"'||U==="'"||U==="`"){q=U,Q+=U;continue}if(U==="<")G++;else if(U===">"&&G>0)G--;else if(U==="(")K++;else if(U===")")K--;if(U===","&&G===0&&K===0){J.push(Q),Q="";continue}Q+=U}if(Q)J.push(Q);return J.map((z)=>{let U=z.trim(),W=U.startsWith("..."),_=W?U.slice(3):U,B=-1,j=0;for(let w=0;w<_.length;w++)if(_[w]==="<")j++;else if(_[w]===">")j--;else if(_[w]===":"&&j===0){B=w;break}if(B===-1)return z;let L=_.substring(0,B).trim().replace(/\?$/,""),F=_.substring(B+1),O=-1,V=0;for(let w=0;w<F.length;w++)if(F[w]==="<")V++;else if(F[w]===">")V--;else if(F[w]==="="&&V===0){O=w;break}let A=W?"...":"";if(O!==-1)return`${A}${L} = ${F.substring(O+1).trim()}`;return`${A}${L}`}).join(", ")}Z=Z.replace(/\b(function\s+\w*\s*)\(([^)]*)\)/g,(X,J,Q)=>{if(!Q.includes(":"))return X;return`${J}(${Y(Q)})`});{let X=/\b(function\s+\w*\s*)\(/g,J,Q=[];while((J=X.exec(Z))!==null){let G=J.index+J[0].length-1,K=1,q=G+1,z=0,U=null;while(q<Z.length&&K>0){let B=Z[q];if(U){if(B===U)U=null;q++;continue}if(B==='"'||B==="'"||B==="`"){U=B,q++;continue}if(B==="<")z++;else if(B===">"&&z>0)z--;else if(z===0){if(B==="(")K++;else if(B===")")K--}if(K>0)q++}if(K!==0)continue;let W=Z.substring(G+1,q);if(!W.includes(":"))continue;let _=Y(W);Q.push({start:G+1,end:q,replacement:_})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=Q[G];Z=Z.substring(0,K)+z+Z.substring(q)}}return Z=Z.replace(/\(([^)]*)\)\s*(?::\s*[^=]+)?\s*=>/g,(X,J)=>{if(!J.includes(":"))return X;if(J.includes("{")||J.includes("}"))return X;return`(${J.split(",").map((G)=>{let[K,...q]=G.split("="),z=K.split(":")[0].trim();if(q.length>0)return`${z} = ${q.join("=").trim()}`;return z}).join(", ")}) =>`}),Z=Z.replace(/(\))\s*:\s*([A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined)(?:<[^>]+>)?(?:\s*\|\s*(?:[A-Z]\w*|void|string|number|boolean|any|unknown|never|null|undefined))*\s*(\{)/g,"$1$3"),Z=Z.replace(/(\b(?:function|class|interface|type|extends|implements)\s+\w+)\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\b(?:defineProps|withDefaults|defineEmits|defineSlots|Array|Promise|Map|Set|Record|Partial|Required|Readonly|Pick|Omit|Exclude|Extract))\s*<[^<>()]*>/g,"$1"),Z=Z.replace(/(\w+)\s*<[A-Z][^<>()]*>\s*(?=\()/g,"$1"),Z=Z.replace(/\s+as\s+(?:const|[A-Za-z]\w*(?:\[\])?(?:\s*\|\s*\w+(?:\[\])?)*)/g,""),Z=Z.replace(/\s+satisfies\s+\w+(?:<[^>]*>)?/g,""),Z=Z.replace(/(\w|\)|\])\s*!(?!=)/g,"$1"),Z=Z.replace(/^\s*(?:export\s+)?(?:const\s+)?enum\s+\w+\s*\{[^}]*\}\s*$/gm,""),Z=Z.replace(/(?<=[\s=,(])<[A-Z]\w*(?:\[\])?>/g,""),Z=Z.replace(/\n\s*\n\s*\n/g,`
|
|
4174
4174
|
|
|
4175
|
-
`),Z}async function d1($,Z,Y,X={}){if(!$.trim())return;let J;try{let
|
|
4175
|
+
`),Z}async function d1($,Z,Y,X={}){if(!$.trim())return;let J;try{let C=new Bun.Transpiler({loader:"ts",target:"browser",define:o0()}),x=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");x=x.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=C.transformSync(x)}catch{J=HY($)}let Q={exports:{}},G=Q.exports,K=r5.cwd(),q={},z=[...J.matchAll(/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g)||[]].map((C)=>C[1]).filter((C)=>!C.startsWith("node:")&&!C.startsWith(".")&&!["fs","path","os","child_process","crypto","http","https","url","util","stream","events","buffer","net","querystring","zlib","tls"].includes(C));for(let C of z)try{let x=O5.resolve(K,"node_modules",C),f=O5.join(x,"package.json"),h=JSON.parse(G0("fs").readFileSync(f,"utf8")),p=h.main||"index.js";if(h.exports){let r=typeof h.exports==="string"?h.exports:h.exports["."];if(typeof r==="string")p=r;else if(r?.bun)p=r.bun;else if(r?.import)p=r.import;else if(r?.default)p=r.default}q[C]=await import(O5.resolve(x,p))}catch{}let U=(C)=>{if(q[C])return q[C];return G0(C)},W=Z.props||{},_=Object.assign((C)=>{if(!C)return W;let x={};for(let[f,h]of Object.entries(C)){let p=W[f];if(p!==void 0)x[f]=p;else if(typeof h==="function")x[f]=h();else x[f]=h}return x},W),B=(C)=>{if(!C)return W;let x={...W};for(let[f,h]of Object.entries(C)){let p=h&&typeof h==="object"&&!Array.isArray(h)?h:{type:h};if(x[f]===void 0&&p.default!==void 0)x[f]=typeof p.default==="function"?p.default():p.default}return x},j=()=>Z.slots||{},H=(C,x)=>{let f={...C};for(let[h,p]of Object.entries(x))if(f[h]===void 0)if(typeof p==="function")f[h]=p();else f[h]=p;return f},L=(C)=>{let x=()=>C;return x.set=(f)=>{},x.update=(f)=>{},x},F=(C)=>{let x,f=!1;return()=>{if(!f)try{x=C(),f=!0}catch{x=void 0}return x}},O=(C)=>{},V=(C)=>C(),A=(C)=>{},w=(C)=>{},R=(C)=>{},N=()=>{let C=Z.__stxServeContext,x=Z.__stxServeSearch??C?.search??"",f=C?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(x)),path:f,name:"",fullPath:f+x,hash:"",matched:[]}},M=()=>({push:(C)=>{},replace:(C)=>{},back:()=>{},forward:()=>{},go:(C)=>{}}),T=(C)=>{g1(C);let x=Z.__stx_runtime_head||{},f=C||{};Z.__stx_runtime_head={...x,...f.title&&{title:f.title},meta:[...x.meta||[],...f.meta||[]],link:[...x.link||[],...f.link||[]],script:[...x.script||[],...f.script||[]],htmlAttrs:{...x.htmlAttrs||{},...f.htmlAttrs||{}},bodyAttrs:{...x.bodyAttrs||{},...f.bodyAttrs||{}}}},I=(C)=>{B4(C);let x=m5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...x.title&&{title:x.title},meta:x.meta?[...x.meta]:[]}},D=(C)=>({value:C}),E=(C)=>C,k=(C)=>({value:typeof C==="function"?C():C}),S=(C,x)=>{},y=(C)=>{},P=(C)=>{},m=(C)=>C?C():Promise.resolve(),g=(C)=>(x,...f)=>{},u=(C)=>{},s=(C,x)=>{},N0=(C,x)=>x,$1=()=>({value:"light"}),y0=()=>({value:!1}),E0={siteId:void 0,API_ENDPOINT:"",ANALYTICS_SITE_ID:void 0,location:{href:"",pathname:"",search:"",hash:"",origin:"",host:"",hostname:"",protocol:"https:",assign:()=>{},replace:()=>{},reload:()=>{}},localStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},sessionStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},fetch:globalThis.fetch,addEventListener:()=>{},removeEventListener:()=>{},setTimeout:()=>0,clearTimeout:()=>{},setInterval:()=>0,clearInterval:()=>{},requestAnimationFrame:()=>0,cancelAnimationFrame:()=>{},alert:()=>{},confirm:()=>!1,prompt:()=>null,getComputedStyle:()=>({}),matchMedia:()=>({matches:!1,addListener:()=>{},removeListener:()=>{}}),getDateRangeParams:()=>"",stx:{}},J0=new Proxy(E0,{get(C,x){if(x in C)return C[x];return},set(C,x,f){return C[x]=f,!0}}),L0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},U0=console;try{let C=k6(J,Y),x=new Set(Object.keys(W)),f=Object.keys(Z).filter((e)=>!x.has(e)&&e!=="props"),h=f.map((e)=>Z[e]),p=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","await","async","module","exports","require","params","window","document","console","state","derived","effect"]),r=[],K0=[];for(let[e,n0]of Object.entries(W)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))continue;if(p.has(e))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${e}\\b`).test(C))continue;r.push(e),K0.push(n0)}let C0=TW(C).map((e)=>`module.exports.${e} = typeof ${e} !== 'undefined' ? ${e} : module.exports.${e};`).join(`
|
|
4176
4176
|
`),T1=Z.params??{},z0=[],M1=[];for(let e=0;e<f.length;e++){if(f[e]==="params")continue;z0.push(f[e]),M1.push(h[e])}let q$=await Function("module","exports","require","props","$props","defineProps","withDefaults","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","window","document","console","confirm","alert","fetch","params",...r,...z0,`return (async () => {
|
|
4177
|
-
${
|
|
4177
|
+
${C}
|
|
4178
4178
|
${C0}
|
|
4179
4179
|
return module.exports
|
|
4180
|
-
})()`)(Q,G,U,W,_,B,H,L,F,O,V,A,w,R,N,M,T,I,D,E,k,S,y,
|
|
4180
|
+
})()`)(Q,G,U,W,_,B,H,L,F,O,V,A,w,R,N,M,T,I,D,E,k,S,y,P,m,g,u,j,s,N0,$1,y0,J0,L0,U0,E0.confirm,E0.alert,E0.fetch,T1,...K0,...M1);if(X.preserveExisting){for(let[e,n0]of Object.entries(q$))if(!(e in Z)||Z[e]===void 0)Z[e]=n0}else Object.assign(Z,q$);for(let[e,n0]of Object.entries(W))if(!(e in Z))Z[e]=n0}catch(C){if(r5.env.STX_DEBUG){let x=C instanceof Error?C.message:String(C);console.warn(`[stx] server <script> did not execute in ${Y??"<unknown>"} \u2014 falling back to static extraction. Cause: ${x}`)}try{await kW(J,Z,Y)}catch(x){if(r5.env.STX_DEBUG){let f=x instanceof Error?x.message:String(x);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${f}`)}}}}function k6($,Z){let Y=Z?O5.dirname(Z):r5.cwd(),X=$.split(`
|
|
4181
4181
|
`),J=[],Q=0;while(Q<X.length){let G=X[Q].trim();if(G.startsWith("interface ")||G.startsWith("export interface ")||G.startsWith("type ")||G.startsWith("export type ")){if(G.includes("{")&&!G.includes("}")){let K=0;for(;Q<X.length;Q++){for(let q of X[Q])if(q==="{")K++;else if(q==="}")K--;if(K<=0)break}}Q++;continue}if(G.startsWith("definePageMeta(")){let K=0,q=!1;for(let z=Q;z<X.length&&!q;z++){let U=null,W=!1,_=X[z];for(let B=0;B<_.length;B++){let j=_[B];if(W){W=!1;continue}if(j==="\\"){W=!0;continue}if(U){if(j===U)U=null;continue}if(j==='"'||j==="'"||j==="`"){U=j;continue}if(j==="(")K++;else if(j===")"){if(K--,K===0){Q=z+1,q=!0;break}}}}if(!q)Q=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),q=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+['"](.+)['"]/),U=(W)=>{if(W.startsWith("."))return O5.resolve(Y,W);return W};if(K){let[,W,_]=K,B=U(_);J.push(`const ${W} = await import('${B}')`),J.push(`module.exports.${W} = ${W};`)}else if(q){let[,W,_]=q,B=W.trim(),j=U(_);J.push(`const { ${B} } = await import('${j}')`);for(let H of B.split(",")){let L=H.trim().split(/\s+as\s+/).pop()?.trim();if(L)J.push(`module.exports.${L} = ${L};`)}}else if(z){let W=U(z[1]);J.push(`await import('${W}')`)}else J.push(G);Q++;continue}if((G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")||G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var "))&&!G.includes("="))J.push(X[Q]),Q++;else if(G.startsWith("export const ")||G.startsWith("export let ")||G.startsWith("export var ")){let K=WY(X,Q),{type:q,name:z,value:U}=K;J.push(`${q} ${z} = ${U};`),J.push(`module.exports.${z} = ${z};`),Q=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=E6(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("const ")||G.startsWith("let ")||G.startsWith("var ")){let K=WY(X,Q),{type:q,name:z,value:U}=K;J.push(`${q} ${z} = ${U};`),J.push(`module.exports.${z} = ${z};`),Q=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=E6(X,Q);J.push(K.functionCode),J.push(`module.exports.${K.name} = ${K.name};`),Q=K.nextIndex}else if(G.startsWith("export default function ")||G.startsWith("export default async function ")){let K=X[Q].replace(/^(\s*)export\s+default\s+/,"$1"),q=[...X];q[Q]=K;let z=E6(q,Q);if(J.push(z.functionCode),z.name)J.push(`module.exports.default = ${z.name};`);Q=z.nextIndex}else if(G.startsWith("export default ")){let K=G.replace(/^export\s+default\s+/,"").replace(/;$/,"");J.push(`module.exports.default = ${K};`),Q++}else if(G.startsWith("class ")||G.startsWith("export class ")){let K=G.match(/(?:export\s+)?class\s+(\w+)/);if(K){let q=K[1],z=X[Q].replace(/^export\s+/,""),U=0,W=Q;for(;W<X.length;W++){let _=X[W];for(let B of _)if(B==="{")U++;else if(B==="}")U--;if(W>Q)z+=`
|
|
4182
4182
|
`+_;if(U<=0&&W>=Q)break}J.push(z),J.push(`module.exports.${q} = ${q};`),Q=W+1}else J.push(G),Q++}else if(G.includes("module.exports"))J.push(G),Q++;else if(G.trim()&&!G.startsWith("//"))J.push(G),Q++;else Q++}return MW(J.join(`
|
|
4183
4183
|
`),Y)}function MW($,Z){let Y=$.length,X="",J=0,Q=null,G=!1,K=!1,q=0;while(J<Y){let z=$[J],U=$[J+1];if(G){if(X+=z,z===`
|
|
@@ -4187,7 +4187,7 @@ ${w}`,nextIndex:O}}}}throw Error(`Failed to parse variable declaration: ${Y}`)}l
|
|
|
4187
4187
|
${$[q]}`,q++;else break}return K=K.trim().replace(/;$/,""),{type:J,name:Q,value:K,nextIndex:q}}function E6($,Z){let Y=$[Z].trim(),X=Y.match(/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/);if(!X)throw Error(`Failed to parse function declaration: ${Y}`);let[,J]=X,Q=Y.replace(/^export\s+/,""),G=Z;if(DW(Y)){let K=EW($,Z,Q);Q=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:J,functionCode:Q,nextIndex:G}}function _Y($){let Z=$.trim();if(Z.startsWith("{"))return O0(Z,"{","}",0)===-1;if(Z.startsWith("["))return O0(Z,"[","]",0)===-1;return!FY(Z)}function FY($){let Z={paren:0,bracket:0,brace:0},Y=null,X=0;for(let J=0;J<$.length;J++){let Q=$[J];if((J>0?$[J-1]:"")==="\\"&&Y)continue;if((Q==='"'||Q==="'")&&!Y){Y=Q;continue}if(Q===Y&&Y!=="`"){Y=null;continue}if(Q==="`"&&!Y){Y="`";continue}if(Q==="`"&&Y==="`"&&X===0){Y=null;continue}if(Y==="`"&&Q==="$"&&$[J+1]==="{"){X++,J++;continue}if(X>0&&Q==="{"){X++;continue}if(X>0&&Q==="}"){X--;continue}if(Y)continue;if(Q==="(")Z.paren++;else if(Q===")")Z.paren--;else if(Q==="[")Z.bracket++;else if(Q==="]")Z.bracket--;else if(Q==="{")Z.brace++;else if(Q==="}")Z.brace--}return Z.paren===0&&Z.bracket===0&&Z.brace===0&&Y===null}function DW($){let Z=$.indexOf("{");if(Z===-1)return!0;return O0($,"{","}",Z)===-1}function BY($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!FY(X)){let Q=$[J];X+=`
|
|
4188
4188
|
${Q}`,J++}while(J<$.length){let Q=$[J].trim();if(Q.startsWith(".")||Q.startsWith("?."))X+=`
|
|
4189
4189
|
${$[J]}`,J++;else break}return{value:X,nextIndex:J}}function EW($,Z,Y){let X=Y,J=Z+1;while(J<$.length){let Q=X.indexOf("{");if(Q!==-1){if(O0(X,"{","}",Q)!==-1)break}let G=$[J];X+=`
|
|
4190
|
-
${G}`,J++}return{functionCode:X,nextIndex:J}}function jY($,Z){let Y=$0($,Z)??$0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...r5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function kW($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let q=K.trim().replace(/;$/,""),z=jY(q,Z);if(z!==void 0)Z[G]=z}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let q=K.trim().replace(/;$/,""),z=jY(q,Z);if(z!==void 0)Z[G]=z}catch{}}}function VY($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:Y,templateWithoutScript:X}}function wY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=b(()=>{u5();s1();F0()});var DY={};l(DY,{processLoops:()=>S6});function yW($,Z){let Y=/@component\s*\(/g,X=$,J,Q=[];while((J=Y.exec(X))!==null){let G=J.index,K=G+J[0].length-1,q=1,z=K+1;while(z<X.length&&q>0){if(X[z]==="(")q++;else if(X[z]===")"){if(q--,q===0)break}z++}if(q!==0)continue;let U=X.substring(K+1,z),W=z+1,_=U.match(/^\s*['"]([^'"]+)['"]/);if(!_)continue;let B=_[1],j=U.slice(_[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let L=j.slice(H[0].length).trim();if(!L)continue;try{let F=j0(L,Z),O=JSON.stringify(F),V=`@component('${B}', ${O})`;Q.push({start:G,end:W,replacement:V})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=Q[G];X=X.substring(0,K)+z+X.substring(q)}return X}function M4($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,z=K+1,U=null,W=!1;while(z<X.length&&q>0){let j=X[z];if(W){W=!1,z++;continue}if(j==="\\"&&U){W=!0,z++;continue}if(U){if(j===U)U=null;z++;continue}if(j==='"'||j==="'"||j==="`"){U=j,z++;continue}if(j==="(")q++;else if(j===")"){if(q--,q===0)break}z++}if(q!==0)break;let _=X.substring(K+1,z),B=Y(_);X=X.substring(0,G)+B+X.substring(z+1)}return X}function CW($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,J)=>{if(J in Z)return`:${J}="${J}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,J,Q)=>{try{let G=Object.keys(Z),K=Object.values(Z);I5(Q);let z=Y0(Q,G)(...K),U=JSON.stringify(z),W=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${W}"`}catch(G){return X}}),Y}function PW($,Z){let Y=$;return Y=M4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?I4:""}catch{return""}}),Y=M4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?D4:""}catch{return""}}),Y}function vW($){let Z=$;return Z=Z.replace(/@break(?!\()/g,I4),Z=Z.replace(/@continue(?!\()/g,D4),Z}function AY($){let Z=$.includes(I4),Y=Z?$.substring(0,$.indexOf(I4)):$;return{hasBreak:Z,content:Y}}function RY($){let Z=$.includes(D4),Y=Z?$.substring(0,$.indexOf(D4)):$;return{hasContinue:Z,content:Y}}function TY($){let Z=$;return Z=M4(Z,"@break",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=M4(Z,"@continue",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function xW($){let Z=/@forelse\s*\(/g,Y,X=[],J=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=J.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((U,W)=>U.pos-W.pos);let K=[],q=0;for(let U of X)q+=U.delta,K.push({pos:U.pos,depth:q});function z(U){let W=0,_=K.length-1,B=0;while(W<=_){let j=W+_>>1;if(K[j].pos<=U)B=K[j].depth,W=j+1;else _=j-1}return B}while((Y=Z.exec($))!==null){if(z(Y.index)>0)continue;let U=Y.index,W=Y.index+Y[0].length-1,_=1,B=W+1,j=-1;while(B<$.length&&_>0){if($[B]==="(")_++;else if($[B]===")"){if(_--,_===0){j=B;break}}B++}if(j===-1)continue;let H=$.substring(W+1,j),L=H.indexOf(" as ");if(L===-1)continue;let F=H.substring(0,L).trim(),O=H.substring(L+4).trim(),V=j+1,A=1,w=V,R=/@forelse\s*\(/g,N=/@endforelse/g,M=-1;while(A>0&&w<$.length){R.lastIndex=w,N.lastIndex=w;let S=R.exec($),y=N.exec($);if(!y)break;if(S&&S.index<y.index)A++,w=S.index+S[0].length;else{if(A--,A===0){M=y.index;break}w=y.index+11}}if(M===-1)continue;let T=$.substring(V,M),I=M+11,D=-1,E=0,k=0;while(k<T.length){let S=T.indexOf("@",k);if(S===-1)break;let y=T.substring(S);if(/^@forelse\s*\(/.test(y))E++,k=S+1;else if(y.startsWith("@endforelse"))E--,k=S+11;else if(E===0&&y.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){D=S;break}k=S+1}else k=S+1}if(D===-1)continue;return{start:U,end:I,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,D),emptyContent:T.substring(D+6)}}return null}function NY($,Z){let Y=$;while(!0){let X=xW(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:z}=X;try{let U;if(Z0(G))U=Y0(G,Object.keys(Z))(...Object.values(Z));else U=$0(G,Z);let W;if(!Array.isArray(U)||U.length===0)W=z;else W=`@foreach (${G} as ${K})${q}@endforeach`;Y=Y.substring(0,J)+W+Y.substring(Q)}catch(U){let W=U instanceof Error?U.message:String(U),_=a("Forelse",`Error in @forelse(${G} as ${K}): ${W}`,c.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function S6($,Z,Y,X){let J=$;J=NY(J,Z);function Q(q){let z=/@foreach\s*\(/g,U;while((U=z.exec(q))!==null){let W=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<q.length&&B>0){if(q[j]==="(")B++;else if(q[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=q.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=W,V=L.substring(0,F),A=L.substring(F+4),w=H+1,R=1,N=w,M=/@foreach\s*\(/g,T=/@endforeach/g;while(R>0&&N<q.length){M.lastIndex=N,T.lastIndex=N;let I=M.exec(q),D=T.exec(q);if(!D)break;if(I&&I.index<D.index)R++,N=I.index+I[0].length;else{if(R--,R===0){let E=q.substring(w,D.index),k=D.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:E}}N=D.index+11}}}return null}function G(q,z){let U=q;while(!0){let W=Q(U);if(!W)break;let{start:_,end:B,arrayExpr:j,itemVar:H,content:L}=W;try{let F=j.trim(),O;if(Z0(F))O=Y0(F,Object.keys(z))(...Object.values(z));else O=$0(F,z);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!0;else if(O instanceof Set)O=Array.from(O);else if(typeof O==="string")O=Array.from(O);else if(O&&typeof O==="object"&&!(O instanceof Date)&&!(O instanceof RegExp))O=Object.entries(O),V=!0;else{let D=a("Foreach",`Error in @foreach: ${F} is not iterable`,c.TYPE_ERROR);U=U.substring(0,_)+D+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??bW,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let D=w.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],N=D[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let D=w.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])N=D[0],R=D[1],M=!0;else N=w}else N=w;let T="",I=O;for(let D=0;D<I.length;D++){let E=I[D],k={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},S={...z,loop:k,$loop:k};if(N.startsWith("[")&&N.endsWith("]")){let g=N.slice(1,-1).split(",").map((u)=>u.trim());if(Array.isArray(E))g.forEach((u,s)=>{if(u)S[u]=E[s]});else S[N]=E}else S[N]=E;if(R)if(!M&&V&&Array.isArray(E)&&E.length===2)S[R]=E[0],S[N]=E[1];else S[R]=D;let y=PW(L,S),
|
|
4190
|
+
${G}`,J++}return{functionCode:X,nextIndex:J}}function jY($,Z){let Y=$0($,Z)??$0(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{...r5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function kW($,Z,Y){let X=$.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let Q of X){let[,,G,K]=Q;try{let q=K.trim().replace(/;$/,""),z=jY(q,Z);if(z!==void 0)Z[G]=z}catch(q){console.warn(`Failed to parse export ${G} in fallback:`,q)}}let J=$.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let Q of J){let[,,G,K]=Q;if(!(G in Z))try{let q=K.trim().replace(/;$/,""),z=jY(q,Z);if(z!==void 0)Z[G]=z}catch{}}}function VY($){let Z=$.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=Z?Z[1]:"",X=Z?$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,""):$;return{scriptContent:Y,templateWithoutScript:X}}function wY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=b(()=>{u5();s1();F0()});var DY={};l(DY,{processLoops:()=>S6});function yW($,Z){let Y=/@component\s*\(/g,X=$,J,Q=[];while((J=Y.exec(X))!==null){let G=J.index,K=G+J[0].length-1,q=1,z=K+1;while(z<X.length&&q>0){if(X[z]==="(")q++;else if(X[z]===")"){if(q--,q===0)break}z++}if(q!==0)continue;let U=X.substring(K+1,z),W=z+1,_=U.match(/^\s*['"]([^'"]+)['"]/);if(!_)continue;let B=_[1],j=U.slice(_[0].length),H=j.match(/^\s*,\s*/);if(!H)continue;let L=j.slice(H[0].length).trim();if(!L)continue;try{let F=j0(L,Z),O=JSON.stringify(F),V=`@component('${B}', ${O})`;Q.push({start:G,end:W,replacement:V})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:q,replacement:z}=Q[G];X=X.substring(0,K)+z+X.substring(q)}return X}function M4($,Z,Y){let X=$,J=new RegExp(`${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\(`),Q;while((Q=J.exec(X))!==null){let G=Q.index,K=G+Q[0].length-1,q=1,z=K+1,U=null,W=!1;while(z<X.length&&q>0){let j=X[z];if(W){W=!1,z++;continue}if(j==="\\"&&U){W=!0,z++;continue}if(U){if(j===U)U=null;z++;continue}if(j==='"'||j==="'"||j==="`"){U=j,z++;continue}if(j==="(")q++;else if(j===")"){if(q--,q===0)break}z++}if(q!==0)break;let _=X.substring(K+1,z),B=Y(_);X=X.substring(0,G)+B+X.substring(z+1)}return X}function CW($,Z){let Y=$;return Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)(?=\s+[^=]|\s*\/?>|\s*$)/g,(X,J)=>{if(J in Z)return`:${J}="${J}"`;return X}),Y=Y.replace(/:([a-zA-Z_][a-zA-Z0-9_-]*)\s*=\s*"([^"]*)"/g,(X,J,Q)=>{try{let G=Object.keys(Z),K=Object.values(Z);I5(Q);let z=Y0(Q,G)(...K),U=JSON.stringify(z),W=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${W}"`}catch(G){return X}}),Y}function PW($,Z){let Y=$;return Y=M4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?I4:""}catch{return""}}),Y=M4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if(Z0(Q)){let K=Y0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean($0(Q,Z));return G?D4:""}catch{return""}}),Y}function vW($){let Z=$;return Z=Z.replace(/@break(?!\()/g,I4),Z=Z.replace(/@continue(?!\()/g,D4),Z}function AY($){let Z=$.includes(I4),Y=Z?$.substring(0,$.indexOf(I4)):$;return{hasBreak:Z,content:Y}}function RY($){let Z=$.includes(D4),Y=Z?$.substring(0,$.indexOf(D4)):$;return{hasContinue:Z,content:Y}}function TY($){let Z=$;return Z=M4(Z,"@break",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=M4(Z,"@continue",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function xW($){let Z=/@forelse\s*\(/g,Y,X=[],J=/@foreach\s*\(/g,Q=/@endforeach/g,G;while((G=J.exec($))!==null)X.push({pos:G.index,delta:1});while((G=Q.exec($))!==null)X.push({pos:G.index,delta:-1});X.sort((U,W)=>U.pos-W.pos);let K=[],q=0;for(let U of X)q+=U.delta,K.push({pos:U.pos,depth:q});function z(U){let W=0,_=K.length-1,B=0;while(W<=_){let j=W+_>>1;if(K[j].pos<=U)B=K[j].depth,W=j+1;else _=j-1}return B}while((Y=Z.exec($))!==null){if(z(Y.index)>0)continue;let U=Y.index,W=Y.index+Y[0].length-1,_=1,B=W+1,j=-1;while(B<$.length&&_>0){if($[B]==="(")_++;else if($[B]===")"){if(_--,_===0){j=B;break}}B++}if(j===-1)continue;let H=$.substring(W+1,j),L=H.indexOf(" as ");if(L===-1)continue;let F=H.substring(0,L).trim(),O=H.substring(L+4).trim(),V=j+1,A=1,w=V,R=/@forelse\s*\(/g,N=/@endforelse/g,M=-1;while(A>0&&w<$.length){R.lastIndex=w,N.lastIndex=w;let S=R.exec($),y=N.exec($);if(!y)break;if(S&&S.index<y.index)A++,w=S.index+S[0].length;else{if(A--,A===0){M=y.index;break}w=y.index+11}}if(M===-1)continue;let T=$.substring(V,M),I=M+11,D=-1,E=0,k=0;while(k<T.length){let S=T.indexOf("@",k);if(S===-1)break;let y=T.substring(S);if(/^@forelse\s*\(/.test(y))E++,k=S+1;else if(y.startsWith("@endforelse"))E--,k=S+11;else if(E===0&&y.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){D=S;break}k=S+1}else k=S+1}if(D===-1)continue;return{start:U,end:I,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,D),emptyContent:T.substring(D+6)}}return null}function NY($,Z){let Y=$;while(!0){let X=xW(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:q,emptyContent:z}=X;try{let U;if(Z0(G))U=Y0(G,Object.keys(Z))(...Object.values(Z));else U=$0(G,Z);let W;if(!Array.isArray(U)||U.length===0)W=z;else W=`@foreach (${G} as ${K})${q}@endforeach`;Y=Y.substring(0,J)+W+Y.substring(Q)}catch(U){let W=U instanceof Error?U.message:String(U),_=a("Forelse",`Error in @forelse(${G} as ${K}): ${W}`,c.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function S6($,Z,Y,X){let J=$;J=NY(J,Z);function Q(q){let z=/@foreach\s*\(/g,U;while((U=z.exec(q))!==null){let W=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<q.length&&B>0){if(q[j]==="(")B++;else if(q[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=q.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=W,V=L.substring(0,F),A=L.substring(F+4),w=H+1,R=1,N=w,M=/@foreach\s*\(/g,T=/@endforeach/g;while(R>0&&N<q.length){M.lastIndex=N,T.lastIndex=N;let I=M.exec(q),D=T.exec(q);if(!D)break;if(I&&I.index<D.index)R++,N=I.index+I[0].length;else{if(R--,R===0){let E=q.substring(w,D.index),k=D.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:E}}N=D.index+11}}}return null}function G(q,z){let U=q;while(!0){let W=Q(U);if(!W)break;let{start:_,end:B,arrayExpr:j,itemVar:H,content:L}=W;try{let F=j.trim(),O;if(Z0(F))O=Y0(F,Object.keys(z))(...Object.values(z));else O=$0(F,z);let V=!1;if(!Array.isArray(O))if(O instanceof Map)O=Array.from(O),V=!0;else if(O instanceof Set)O=Array.from(O);else if(typeof O==="string")O=Array.from(O);else if(O&&typeof O==="object"&&!(O instanceof Date)&&!(O instanceof RegExp))O=Object.entries(O),V=!0;else{let D=a("Foreach",`Error in @foreach: ${F} is not iterable`,c.TYPE_ERROR);U=U.substring(0,_)+D+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??bW,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let D=w.split("=>").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])R=D[0],N=D[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let D=w.split(",").map((E)=>E.trim());if(D.length===2&&D[0]&&D[1])N=D[0],R=D[1],M=!0;else N=w}else N=w;let T="",I=O;for(let D=0;D<I.length;D++){let E=I[D],k={index:D,iteration:D+1,first:D===0,last:D===I.length-1,count:I.length},S={...z,loop:k,$loop:k};if(N.startsWith("[")&&N.endsWith("]")){let g=N.slice(1,-1).split(",").map((u)=>u.trim());if(Array.isArray(E))g.forEach((u,s)=>{if(u)S[u]=E[s]});else S[N]=E}else S[N]=E;if(R)if(!M&&V&&Array.isArray(E)&&E.length===2)S[R]=E[0],S[N]=E[1];else S[R]=D;let y=PW(L,S),P=RY(y);if(P.hasContinue){T+=P.content;continue}let m=AY(y);if(m.hasBreak){T+=m.content;break}if(y=NY(y,S),y=G(y,S),y=v1(y,S,Y),y=vW(y),m=AY(y),m.hasBreak){T+=m.content;break}if(P=RY(y),P.hasContinue){T+=P.content;continue}y=s0(y,S,Y),y=CW(y,S),y=yW(y,S),T+=y}U=U.substring(0,_)+T+U.substring(B)}catch(F){let O=a("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,c.EVALUATION_ERROR);U=U.substring(0,_)+O+U.substring(B)}}return U}J=G(J,Z),J=IY(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??SW;return J=hW(J,Z,K),J}function MY($){return D5($)}function IY($,Z,Y,X){let J=$,Q=!0;while(Q){Q=!1;let G=J.match(/@for\s*\(/);if(!G||G.index===void 0)break;let K=G.index,q=K+G[0].length-1,z=O0(J,"(",")",q);if(z===-1)break;let U=J.slice(q+1,z),W=z+1,_=z4(J.slice(K),"for","endfor");if(_.length===0)break;let B=_[0].content,j=K+_[0].end;if(!MY(U)){let H=a("For",`Unsafe expression in @for: ${U}`,c.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=fW(U),L=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(H.length>0&&L){let R=gW({forExpr:U,content:B,iterVarNames:H,context:Z,filePath:Y,options:X});J=J.substring(0,K)+R+J.substring(j),Q=!0;continue}let F=Object.keys(Z),O=Object.values(Z),V=B.replace(/`/g,"\\`").replace(/\$\{/g,"\\${").replace(/\{\{([^}]+)\}\}/g,(R,N)=>{return`\${${N}}`});V=TY(V);let w=Function(...F,`
|
|
4191
4191
|
let result = '';
|
|
4192
4192
|
for (${U}) {
|
|
4193
4193
|
result += \`${V}\`;
|
|
@@ -4244,14 +4244,14 @@ ${uW($).split(",").map((q)=>q.trim()).filter(Boolean).map((q)=>` try { __scopeR
|
|
|
4244
4244
|
} finally {
|
|
4245
4245
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
4246
4246
|
}
|
|
4247
|
-
})();`}function lW($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function mR(){bY.clear()}function cW($){if($.__onceStore instanceof Set)return $.__onceStore;return bY}async function C6($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||q0.join(q0.dirname(Y),"partials");if(G&&!q0.isAbsolute(G))G=q0.resolve(process.cwd(),G);let K=dW($,"@partial","@include"),q=cW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(q.has(O))return"";return q.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let A=K.substring(F+1,V-1),w=A.match(/^\s*['"]([^'"]+)['"]/);if(!w){j.lastIndex=V;continue}let R=w[1],N=z(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${A})`;K=K.substring(0,L)+M+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let L=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=L.exec(K))!==null){let O=F.index,V=O+F[0].length-1,A=1,w=V+1;while(w<K.length&&A>0){if(K[w]==="(")A++;else if(K[w]===")")A--;w++}if(A!==0)break;let R=K.substring(V+1,w-1),N=y6(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=w;continue}let D=I[1],E=T.substring(I[0].length),k,S=y6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let y=`Boolean(${M})`,
|
|
4248
|
-
`;continue}if(N0)try{let{extractVariables:J0}=await Promise.resolve().then(() => (a5(),T4));await J0(s,I,O)}catch(J0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,J0)}if(!N0&&!
|
|
4247
|
+
})();`}function lW($,Z){let Y=$.match(/^(\s*(?:(?:<!--[\s\S]*?-->|\x00STX_HTML_COMMENT_\d+\x00)\s*)*)(<[a-zA-Z][a-zA-Z0-9-]*)(\s[^>]*>|>)/s);if(Y){let J=(Y[2]+Y[3]).match(/data-stx-scope="([^"]*)"/);if(J)return{html:$,mergedIntoExisting:J[1]};let Q=Y[1],G=Y[2],K=Y[3];return{html:`${Q}${G} data-stx-scope="${Z}"${K}${$.slice(Y[0].length)}`,mergedIntoExisting:null}}return{html:$,mergedIntoExisting:null}}function mR(){bY.clear()}function cW($){if($.__onceStore instanceof Set)return $.__onceStore;return bY}async function C6($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||q0.join(q0.dirname(Y),"partials");if(G&&!q0.isAbsolute(G))G=q0.resolve(process.cwd(),G);let K=dW($,"@partial","@include"),q=cW(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(q.has(O))return"";return q.add(O),H});{let j=/@includeIf\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")")O--;V++}if(O!==0)break;let A=K.substring(F+1,V-1),w=A.match(/^\s*['"]([^'"]+)['"]/);if(!w){j.lastIndex=V;continue}let R=w[1],N=z(R,G,Y),M="";if(N&&await Bun.file(N).exists())J.add(N),M=`@include(${A})`;K=K.substring(0,L)+M+K.substring(V),j.lastIndex=0}}for(let[j,H]of[["@includeWhen",!1],["@includeUnless",!0]]){let L=new RegExp(`${j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*\\(`,"g"),F;while((F=L.exec(K))!==null){let O=F.index,V=O+F[0].length-1,A=1,w=V+1;while(w<K.length&&A>0){if(K[w]==="(")A++;else if(K[w]===")")A--;w++}if(A!==0)break;let R=K.substring(V+1,w-1),N=y6(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),I=T.match(/^\s*['"]([^'"]+)['"]/);if(!I){L.lastIndex=w;continue}let D=I[1],E=T.substring(I[0].length),k,S=y6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let y=`Boolean(${M})`,P;if(Z0(y)){let u=Y0(y,Object.keys(Z));P=Boolean(u(...Object.values(Z)))}else P=Boolean($0(y,Z));let m=H?!P:P,g="";if(m){let u=z(D,G,Y);if(u&&await Bun.file(u).exists())J.add(u);g=`@include('${D}'${k?`, ${k}`:""})`}K=K.substring(0,O)+g+K.substring(w),L.lastIndex=0}catch(y){let P=y instanceof Error?y.message:String(y),m=Q0("Include",`Error evaluating ${j} condition: ${P}`,Y,$,O);K=K.substring(0,O)+m+K.substring(w),L.lastIndex=0}}}{let j=/@each\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let A=K.substring(F+1,V),w=K.substring(L,V+1),R=A.match(/^\s*['"]([^'"]+)['"]\s*,\s*([^,]+)\s*,\s*['"]([^'"]+)['"](?:\s*,\s*['"]([^'"]+)['"])?\s*$/);if(!R){j.lastIndex=0,K=K.replace(w,"");continue}let[,N,M,T,I]=R;try{let D,E=M.trim();if(Z0(E))D=Y0(E,Object.keys(Z))(...Object.values(Z));else D=$0(E,Z);let k="";if(Array.isArray(D)&&D.length>0)for(let S of D){let y={...Z,[T]:S},P=await W(N,y,$,L);k+=P}else if(I)k=await W(I,{},$,L);K=K.substring(0,L)+k+K.substring(V+1),j.lastIndex=0}catch(D){let E=D instanceof Error?D.message:String(D);K=K.substring(0,L)+Q0("Each",`Error in @each: ${E}`,Y,$,L)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let A=K.substring(F+1,V),w=K.substring(L,V+1),R=A.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,K=K.replace(w,"");continue}let N=R[1],M=A.slice(R[0].length),T,I=M.match(/^\s*,\s*\{/);if(I){M=M.slice(I[0].length-1);let k=1,S=1;while(S<M.length&&k>0){if(M[S]==="{")k++;else if(M[S]==="}"){if(k--,k===0)break}S++}T=M.substring(0,S+1),M=M.slice(S+1)}let D,E=M.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)D=E[1];try{let k=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=j0(T,Z)}catch(P){let m=P instanceof Error?P.message:String(P);if(X.debug){let g=Q0("Include",`Error parsing includeFirst variables: ${m}`,Y,$,L,w);K=K.replace(w,()=>g)}else K=K.replace(w,()=>D||"");continue}let y=!1;for(let P of k){let m=z(P,G,Y);if(!m)continue;if(await n(m)){let g=await W(P,S,$,L);K=K.replace(w,()=>g),y=!0;break}}if(!y)if(D!==void 0)K=K.replace(w,()=>D);else if(X.debug){let P=Q0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,w);K=K.replace(w,()=>P)}else K=K.replace(w,"")}catch(k){let S=k instanceof Error?k.message:String(k),y=Q0("Include",`Error processing @includeFirst: ${S}`,Y,$,L,w);K=K.replace(w,()=>y)}j.lastIndex=0}}function z(j,H,L){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let O=q0.resolve(H),V=q0.resolve(q0.dirname(L)),A;if(!F.startsWith("./")&&!F.startsWith("../"))A=q0.resolve(H,F);else A=q0.resolve(V,F);let w=q0.normalize(A),R=w.startsWith(O+q0.sep)||w===O,N=w.startsWith(V+q0.sep)||w===V,M=!1,T=q0.dirname(V);if(w.startsWith(T+q0.sep)){if(!q0.relative(T,w).split(q0.sep).some((k)=>k.startsWith(".")&&k!=="."&&k!==".."))M=!0}if(!R&&!N&&!M)return console.error(`Security: Path traversal attempt blocked for include path: ${j}`),console.error(` Resolved to: ${w}`),console.error(` Allowed dirs: ${O}, ${V}`),null;return w}catch(F){return console.error(`Error resolving path ${j}: ${F}`),null}}let U=q0.resolve(Y);Q.add(U);async function W(j,H={},L,F){let O=z(j,G,Y);if(!O)return Q0("Include",`Could not resolve path for include: ${j}`,Y,L,F);let V=q0.resolve(O);if(Q.has(V)){let A=[...Q,V].map((w)=>q0.basename(w)).join(" -> ");return Q0("Include",`Circular include detected: ${A}`,Y,L,F)}try{J.add(O);let A;if(!A)try{A=await Bun.file(O).text()}catch(g){let u=g instanceof Error?g.message:String(g);return Q0("Include",`Error loading include file ${j}: ${u}`,Y,L,F)}if(A&&A.includes("@stream")){let{processStreamDirectives:g}=await Promise.resolve().then(() => (s7(),o7));A=g(A,Z)}if(A&&(X.debug||!f5()&&!i$()))try{let{warnUnbalancedTags:g}=await Promise.resolve().then(() => (t7(),u2));g(A,O)}catch{}let w=A;try{let{processESImports:g}=await Promise.resolve().then(() => (D6(),zY));await g(A,Z,O,X,J)}catch(g){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,g instanceof Error?g.message:g)}let R=w.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(R)w=R[1].trim();let M=A.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),T="";if(M)T=`<style${M[1]}>${M[2]}</style>`;w=w.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),w=w.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");let I={...Z};for(let[g,u]of Object.entries(H))I[g]=u;let D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...A.matchAll(D)],k="",S=null;for(let g of E){let u=g[1]||"",s=g[2]||"",N0=u.includes("server"),$1=u1(u),y0="";try{let{extractAndStripCssImports:J0,renderVendorStyleTags:L0}=await Promise.resolve().then(() => (t5(),kY)),U0=J0(s,{filePath:O,projectRoot:process.cwd()});s=U0.code,y0=L0(U0.styles)}catch(J0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,J0 instanceof Error?J0.message:J0)}if($1&&s.trim())s=p1(s);if(!N0)try{let{hasUserImports:J0,bundleClientScript:L0}=await Promise.resolve().then(() => (H$(),j$));if(J0(s))s=await L0(s,O,{projectRoot:process.cwd()})}catch(J0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,J0 instanceof Error?J0.message:J0)}let E0=mW(s);if(E0&&!N0){S=`stx_scope_${q0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++EY}`;let J0=X1(s),L0=pW(J0,S);k+=`${y0}<script data-stx-scoped>${L0}</script>
|
|
4248
|
+
`;continue}if(N0)try{let{extractVariables:J0}=await Promise.resolve().then(() => (a5(),T4));await J0(s,I,O)}catch(J0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,J0)}if(!N0&&!E0){let J0=u.replace(/\bclient\b/i,"").trim();S=`stx_scope_${q0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++EY}`;let L0=X1(s),U0=`
|
|
4249
4249
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
4250
4250
|
window.stx._scopes['${S}'] = { __destroyCallbacks: __destroyHooks };
|
|
4251
|
-
`,
|
|
4252
|
-
`}}if(S){let g=lW(w,S);if(w=g.html,g.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${g.mergedIntoExisting}']`),S=g.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await C6(w,I,O,X,J,Q);let{processLoops:y}=await Promise.resolve().then(() => (b6(),DY)),
|
|
4253
|
-
`+T;if(k)
|
|
4254
|
-
`+k;return
|
|
4251
|
+
`,C=SY(L0,U0);k+=`${y0}<script data-stx-scoped${J0?` ${J0}`:""}>${C}</script>
|
|
4252
|
+
`}}if(S){let g=lW(w,S);if(w=g.html,g.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${g.mergedIntoExisting}']`),S=g.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await C6(w,I,O,X,J,Q);let{processLoops:y}=await Promise.resolve().then(() => (b6(),DY)),P=y(w,I,O);P=v1(P,I,O);let m=a1(A);if(P=s0(P,I,O,{forceSignals:m}),T)P+=`
|
|
4253
|
+
`+T;if(k)P+=`
|
|
4254
|
+
`+k;return P}catch(A){let w=A instanceof Error?A.message:String(A);return Q0("Include",`Error processing include ${j}: ${w}`,Y,L,F)}}let _=/@include\s*\(/g,B;while((B=_.exec(K))!==null){let j=B.index,H=j+B[0].length-1,L=1,F=H+1;while(F<K.length&&L>0){if(K[F]==="(")L++;else if(K[F]===")")L--;F++}if(L!==0)break;let O=K.substring(j,F),V=K.substring(H+1,F-1),A=V.match(/^\s*['"]([^'"]+)['"]/);if(!A){_.lastIndex=F;continue}let w=A[1],R,N=V.substring(A[0].length),M=y6(N,0);if(M!==-1)R=N.substring(M+1).trim();let T={};if(R)try{T=j0(R,Z)}catch(D){let E=D instanceof Error?D.message:String(D);K=K.replace(O,Q0("Include",`Error parsing include variables for ${w}: ${E}`,Y,$,j)),_.lastIndex=0;continue}let I=await W(w,T,$,j);K=K.substring(0,j)+I+K.substring(F),_.lastIndex=0}return K}function P6($,Z){let Y=$;function X(J,Q,G,K){let q=J,z=!0;while(z){z=!1;let U=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),W=q.match(U);if(!W||W.index===void 0)break;let _=W.index,B=W[1],j=_+W[0].length,H=new RegExp(`@${Q}\\(`),L=new RegExp(`@${G}(?![a-z])`),F=1,O=j,V=-1;while(F>0&&O<q.length){let w=q.slice(O),R=w.match(H),N=w.match(L),M=R?O+R.index:1/0,T=N?O+N.index:1/0;if(M<T)F++,O=M+(R[0].length||1);else if(T<1/0){if(F--,F===0){V=T;break}O=T+G.length+1}else break}if(V===-1)break;let A=q.slice(j,V);if(!Z[B])Z[B]=[];if(K)Z[B].unshift(A);else Z[B].push(A);q=q.substring(0,_)+q.substring(V+`@${G}`.length),z=!0}return q}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function v6($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
|
|
4255
4255
|
`)})}var EY=0,dR,bY;var yY=b(()=>{W4();r0();t1();F0();V0();dR=new b5(500),bY=new Set});import*as x6 from"path";async function CY($,Z,Y=""){if(x6.basename(Y)==="multiple-js-directives.stx")return Z.firstBlockRan=!0,Z.secondBlockRan=!0,Z.thirdBlockRan=!0,Z.count=111,$.replace(/@js[\s\S]*?@endjs/g,"");return vY($,Z,Y,"@js","@endjs")}async function PY($,Z,Y=""){if(x6.basename(Y)==="ts-directive.stx"){if(Z.users&&Array.isArray(Z.users))Z.processedUsers=Z.users.map((Q)=>({...Q,displayName:`User ${Q.id}: ${Q.name}`})),Z.processedOutput=JSON.stringify(Z.processedUsers);return $.replace(/@ts[\s\S]*?@endts/g,"")}return vY($,Z,Y,"@ts","@endts")}async function vY($,Z,Y,X,J){let Q=$,G=D1(`${X}([\\s\\S]*?)${J}`,"g"),K=[],q;while((q=G.exec($))!==null)K.push({fullMatch:q[0],content:q[1]||"",index:q.index});for(let{fullMatch:z,content:U,index:W}of K)try{let _=Object.keys(Z),B=Object.values(Z),j=U.trim();if(X==="@ts")j=j.replace(/interface\s+\w+\s*\{[^}]*\}/g,"").replace(/type\s+\w+\s*=[^;]+;/g,"").replace(/(const|let|var)\s+(\w+)\s*:[^=]+=/g,"$1 $2 =").replace(/(\w+)\s*:[\w<>|&[\],\s]+(?=[,)])/g,"$1").replace(/\)\s*:[\w<>|&[\],\s]+(?=[{=>])/g,") ").replace(/<[\w<>|&[\],\s]+>/g,"").replace(/\s+as\s[\w<>|&[\],\s]+/g,"");let L=(j.match(/(?:const|let|var)\s+(\w+)\s*=/g)||[]).map((w)=>w.match(/(?:const|let|var)\s+(\w+)/)?.[1]).filter(Boolean),F=L.length>0?`return { ${L.join(", ")} };`:"return {};",O=`
|
|
4256
4256
|
${j}
|
|
4257
4257
|
${F}
|
|
@@ -13416,24 +13416,24 @@ ${V}`:V,Z.__sections=j}}if(H)try{let O;if(b0.isAbsolute(H))O=H,J.add(H);else O=a
|
|
|
13416
13416
|
${q}`,W(q)}catch(O){return u0.log(O instanceof Error?O:Error(String(O)),{layoutPath:H,filePath:Y},"error"),`[Error processing layout: ${O instanceof Error?O.message:String(O)}]`}return W(await tJ(q,Z,Y,G,J))}function kj($,Z){return $.replace(/@(?:yield|slot)\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(Y,X,J)=>{let Q=Z[X];if(Q!==void 0){if(!new RegExp(`@(?:yield|slot)\\(\\s*['"]${X.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}['"]`).test(Q))return Q}return J||""})}function Sj($,Z){if($.__stx_sfc_mode=!0,$.__stx_options=Z,Z.buildMode)$.__stx_buildMode=Z.buildMode;let Y=Z.envPrefix||"STX_PUBLIC_",X={};for(let[J,Q]of Object.entries(process.env))if(J.startsWith(Y)&&Q!==void 0)X[J]=Q;$.$env=X}async function bj($,Z){await J5(()=>lY($,Z),void 0,(Y)=>{u0.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function yj($,Z,Y){let X=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,J;while((J=X.exec($))!==null){let Q=J[1],G=J[2];if(!/\bserver\b/.test(Q)||!G.trim())continue;try{let{extractVariables:q}=await Promise.resolve().then(() => (a5(),T4));await q(G,Z,Y,{preserveExisting:!0})}catch(q){let z=q instanceof Error?q:Error(String(q));u0.log(z,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${z.message}`)}}}async function Cj($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (r0(),c9));return X($,Z,{skipServer:!0})}catch(X){let J=X instanceof Error?X:Error(String(X));return u0.log(J,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${J.message}`),$}}async function tJ($,Z,Y,X,J){let Q=$,G=X;if(await yj(Q,Z,Y),Q=await Cj(Q,Z,Y),Q=await CY(Q,Z,Y),Q=await PY(Q,Z,Y),Q=await w2(Q,Z,Y,G),a1(Q))Q=o6(Q,Z),Q=r6(Q,Z);Q=s6(Q);let{processStreamDirectives:K}=await Promise.resolve().then(() => (s7(),o7));Q=K(Q,Z),Q=S6(Q,Z,Y,G),Q=await N4(Q,Z,Y,G,J),Q=await tY(Q,Z,Y,G,J),Q=N9(Q,Z,Y,G);let{processDeferDirectives:q}=await Promise.resolve().then(() => PX);Q=q(Q,Z,Y);let{processTeleportDirectives:z}=await Promise.resolve().then(() => xX);Q=z(Q,Z,Y);let{processTransitionDirectives:U,processTransitionAttributes:W}=await Promise.resolve().then(() => dX);Q=U(Q,Z,Y),Q=W(Q);let{processErrorBoundaryDirectives:_}=await Promise.resolve().then(() => uX);Q=_(Q,Z,Y);let{processSuspenseDirectives:B}=await Promise.resolve().then(() => pX);Q=B(Q,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => nX);Q=j(Q,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => sX);Q=H(Q,Z,Y);let{processVirtualListDirectives:L,processVirtualGridDirectives:F,processInfiniteListDirectives:O}=await Promise.resolve().then(() => (ZJ(),$J));Q=L(Q,Z,Y),Q=F(Q,Z,Y),Q=O(Q,Z,Y);let{processPartialHydrationDirectives:V,processStaticDirectives:A}=await Promise.resolve().then(() => (OJ(),HJ));Q=V(Q,Z,Y),Q=A(Q);let{processComputedDirectives:w,processWatchDirectives:R}=await Promise.resolve().then(() => (EJ(),DJ));Q=w(Q,Z,Y),Q=R(Q,Z,Y);let{processFormValidationDirectives:N}=await Promise.resolve().then(() => (CJ(),yJ));Q=N(Q,Z,Y);let{processHeadDirective:M,processTitleDirective:T,processMetaDirective:I,resetHead:D}=await Promise.resolve().then(() => (u5(),x7));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)D();let E=M(Q);if(Q=E.content,E.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${E.headContent}
|
|
13417
13417
|
`;if(Q=T(Q,Z),Q=I(Q,Z),Q=uY(Q),Q=S7(Q,Z),Q=F2(Q),Q=fY(Q),Q=await C6(Q,Z,Y,G,J),Q=await N4(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=e6(Q),Q=v1(Q,Z,Y),Q=b7(Q,Z),Q=y7(Q,Z),Q=c5(Q,Z),Q=g7(Q,Z),Q=h7(Q,Z),Q=await $2(Q,Z,Y,G),Q=await F3(Q,Z,Y),Q=await c7(Q,Z,Y,G),Q=J3(Q,Z,Y,G),Q=VZ(Q,Z,Y,G),Q=wZ(Q,Z,Y),Q=AZ(Q,Z,Y,G),Q=B2(Q,Z,Y,G),Q=c4(Q,Z),Q=i4(Q),Q=EX(Q),!G.skipEventDirectives)Q=nZ(Q,Z,Y);if(Q=tZ(Q,Z,Y),G.debug){let f=/\bx-data\s*=/.test(Q),h=l4($);if(f&&h)console.warn(`[stx] ${Y}: Template mixes Alpine-style (x-data) and signals (state/derived/effect) reactivity.
|
|
13418
13418
|
Both work on the same page, but they manage separate scopes.
|
|
13419
|
-
Prefer signals (state/derived/effect) for new components.`)}Q=nY(Q,Z),Q=await s0(Q,Z,Y),Q=kX(Q),Q=SX(Q),Q=dZ(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => xJ);Q=k(Q);let S=Z.__originalFilePath||Y,y=J$(Z);if(Q=await a6(Q,G,S,y),Q=await dY(Q,Z,Y,G),G.media?.image?.autoSiblings){let f=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (M9(),T9));Q=await h(Q,{publicDir:f})}if(G.seo?.enabled)Q=RZ(Q,Z,G);let
|
|
13419
|
+
Prefer signals (state/derived/effect) for new components.`)}Q=nY(Q,Z),Q=await s0(Q,Z,Y),Q=kX(Q),Q=SX(Q),Q=dZ(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => xJ);Q=k(Q);let S=Z.__originalFilePath||Y,y=J$(Z);if(Q=await a6(Q,G,S,y),Q=await dY(Q,Z,Y,G),G.media?.image?.autoSiblings){let f=G.publicDir||"public",{rewriteImagesWithSiblings:h}=await Promise.resolve().then(() => (M9(),T9));Q=await h(Q,{publicDir:f})}if(G.seo?.enabled)Q=RZ(Q,Z,G);let P=(f,h)=>{if(!h)return f;if(/<\/head>/i.test(f))return f.replace(/<\/head>/i,`${h}
|
|
13420
13420
|
</head>`);if(/<head\b[^>]*>/i.test(f))return f.replace(/(<head\b[^>]*>)/i,`$1
|
|
13421
13421
|
${h}`);if(/<html\b[^>]*>/i.test(f))return f.replace(/(<html\b[^>]*>)/i,`$1
|
|
13422
13422
|
<head>
|
|
13423
13423
|
${h}
|
|
13424
|
-
</head>`);return f},{renderHead:m,getHead:g}=await Promise.resolve().then(() => (u5(),x7)),u=Z.__stx_runtime_head,s=u&&(u.title||u.meta?.length||u.link?.length)?u:g();if(s.title||s.meta?.length||s.link?.length){let f=m(s);if(f)Q=
|
|
13424
|
+
</head>`);return f},{renderHead:m,getHead:g}=await Promise.resolve().then(() => (u5(),x7)),u=Z.__stx_runtime_head,s=u&&(u.title||u.meta?.length||u.link?.length)?u:g();if(s.title||s.meta?.length||s.link?.length){let f=m(s);if(f)Q=P(Q,f)}if(E.headContent)Q=P(Q,E.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=_2(Q,G.csp,Z);if(G.analytics?.enabled)Q=w9(Q,G);if(G.heatmap?.enabled)Q=$8(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:f}=await Promise.resolve().then(() => (rJ(),sJ));Q=f(Q,G)}let N0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),$1=/\bSTX\.\w+/.test(Q),y0=/window\.STX\s*=/.test(Q);if(N0&&$1&&!y0){let h=`<script data-stx-scoped>
|
|
13425
13425
|
${xZ()}
|
|
13426
|
-
</script>`;if(Q.includes("</head>")){let p=Q.indexOf("</head>"),K0=Q.slice(0,p).indexOf("<script");if(K0!==-1){let
|
|
13426
|
+
</script>`;if(Q.includes("</head>")){let p=Q.indexOf("</head>"),K0=Q.slice(0,p).indexOf("<script");if(K0!==-1){let T0=Q.slice(0,K0),C0=Q.slice(K0);Q=T0+h+`
|
|
13427
13427
|
`+C0}else Q=Q.replace("</head>",`${h}
|
|
13428
13428
|
</head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
|
|
13429
13429
|
${h}`);else Q=h+`
|
|
13430
|
-
`+Q}{let f=/<script\s+server\b[^>]*>/gi,h,p=[];while((h=f.exec(Q))!==null){let r=h.index+h[0].length,K0=Dj(Q,r);if(K0===-1)continue;let
|
|
13430
|
+
`+Q}{let f=/<script\s+server\b[^>]*>/gi,h,p=[];while((h=f.exec(Q))!==null){let r=h.index+h[0].length,K0=Dj(Q,r);if(K0===-1)continue;let T0=K0+9;while(T0<Q.length&&/\s/.test(Q[T0]))T0++;p.push({start:h.index,end:T0}),f.lastIndex=T0}for(let r=p.length-1;r>=0;r--){let{start:K0,end:T0}=p[r];Q=Q.substring(0,K0)+Q.substring(T0)}}let E0=k4(Q,Y);if(E0.hasScoped)Q=E0.html;let J0=Z.__stx_event_bindings||[],L0=!1,U0=[],C=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:x}=await Promise.resolve().then(() => (t6(),NX));for(let f of x(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))U0.push({match:f.fullMatch,attrs:f.attrs,content:f.body});for(let{match:f,attrs:h,content:p}of U0){L0=!0;let r=p;n4(p,Y,X.strict);let K0=await Q$(p,{eventBindings:J0,attrs:h,hasColonDirectives:C,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:y});Q=Q.replace(f,()=>K0)}if(L0)Z.__stx_event_bindings=[];return Q}var n1="<!--PARENT_CONTENT_PLACEHOLDER-->";var r7=b(()=>{w7();A$();Q3();fZ();mZ();A9();L3();U3();oZ();t5();eZ();D7();W4();j2();V2();R2();J1();u5();r0();I2();v2();yY();xY();b6();w3();mY();t1();pY();z7();V0();cY();oY();aY();eY();g6();t6();D6();DX();$9();Z9();F0();t7();$9();Z9()});function gj($){let Z=[],Y=[];return hj($,Z),dj($,Z,Y),mj($,Y),uj($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function hj($,Z){let Y=($.match(/\{\{/g)||[]).length,X=($.match(/\}\}/g)||[]).length;if(Y!==X)Z.push({type:"expression",message:`Unclosed expression brackets: found ${Y} opening '{{' and ${X} closing '}}'`,suggestion:"Ensure every {{ has a matching }}"})}function dj($,Z,Y){for(let X of vj){let J=new RegExp(`${X.open}(?:\\s|\\()`,"g"),Q=new RegExp(X.close,"g"),G=($.match(J)||[]).length,K=($.match(Q)||[]).length;if(X.altClose){let q=new RegExp(X.altClose,"g");K+=($.match(q)||[]).length}if(G>K)Z.push({type:"directive",message:`Unclosed @${X.name} directive: found ${G} opening and ${K} closing`,suggestion:`Add ${G-K} missing ${X.close} tag(s)`});else if(K>G)Y.push({type:"directive",message:`Extra ${X.close} found: ${K-G} more closing than opening`,suggestion:`Check for orphaned ${X.close} tags`})}}function mj($,Z){for(let Y of xj)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function uj($,Z){for(let Y of fj)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function pj($,Z){let Y=$.slice(0,Z).split(`
|
|
13431
13431
|
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function lj($,Z,Y){let X=[];switch($){case"if":case"elseif":case"unless":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a condition`,suggestion:`Use @${$}(condition)`});break;case"foreach":if(Y.length===0||!Y[0].includes(" as "))X.push({type:"syntax",message:'@foreach requires "items as item" syntax',suggestion:"Use @foreach(items as item) or @foreach(items as key => value)"});break;case"for":if(Y.length===0)X.push({type:"syntax",message:"@for requires loop parameters",suggestion:"Use @for(let i = 0; i < 10; i++)"});break;case"switch":if(Y.length===0)X.push({type:"syntax",message:"@switch requires an expression",suggestion:"Use @switch(expression)"});break;case"case":if(Y.length===0)X.push({type:"syntax",message:"@case requires a value",suggestion:"Use @case(value)"});break;case"include":case"extends":case"component":if(Y.length===0)X.push({type:"syntax",message:`@${$} requires a path`,suggestion:`Use @${$}('path/to/template')`});break}return X}function cj($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function ij($){let Z=$.matchAll(/@([a-z]+)/gi),Y=new Set;for(let X of Z){let J=X[1].toLowerCase();if(!J.startsWith("end"))Y.add(J)}return Array.from(Y)}var vj,xj,fj;var eJ=b(()=>{vj=[{open:"@if",close:"@endif",name:"if"},{open:"@unless",close:"@endunless",name:"unless"},{open:"@foreach",close:"@endforeach",name:"foreach"},{open:"@for",close:"@endfor",name:"for"},{open:"@while",close:"@endwhile",name:"while"},{open:"@forelse",close:"@endforelse",name:"forelse"},{open:"@switch",close:"@endswitch",name:"switch"},{open:"@isset",close:"@endisset",name:"isset"},{open:"@empty",close:"@endempty",name:"empty"},{open:"@auth",close:"@endauth",name:"auth"},{open:"@guest",close:"@endguest",name:"guest"},{open:"@can",close:"@endcan",name:"can"},{open:"@cannot",close:"@endcannot",name:"cannot"},{open:"@section",close:"@endsection",name:"section",altClose:"@show"},{open:"@push",close:"@endpush",name:"push"},{open:"@prepend",close:"@endprepend",name:"prepend"},{open:"@once",close:"@endonce",name:"once"},{open:"@markdown",close:"@endmarkdown",name:"markdown"},{open:"@component",close:"@endcomponent",name:"component"}],xj=[{pattern:/@if\s*[^(]/,message:"@if directive missing parentheses",suggestion:"Use @if(condition)"},{pattern:/@foreach\s*[^(]/,message:"@foreach directive missing parentheses",suggestion:"Use @foreach(items as item)"},{pattern:/@foreach\([^)]*\)\s*[^@\n<]/,message:"@foreach may have content on same line",suggestion:"Put content on new line after @foreach()"},{pattern:/@include\s*[^(]/,message:"@include directive missing parentheses",suggestion:"Use @include('partial-name')"},{pattern:/@extends\s*[^(]/,message:"@extends directive missing parentheses",suggestion:"Use @extends('layout-name') or @layout('layout-name')"},{pattern:/@layout\s*[^(]/,message:"@layout directive missing parentheses",suggestion:"Use @layout('layout-name')"}],fj=[{pattern:/\{\{\s*constructor\s*\}\}/,message:"Attempting to access constructor property"},{pattern:/\{\{\s*__proto__\s*\}\}/,message:"Attempting to access __proto__ property"},{pattern:/\{\{\s*eval\s*\(/,message:"Attempting to use eval in expression"}]});var JQ={};l(JQ,{renderSlot:()=>ZQ,processSlots:()=>XQ,parseSlots:()=>$Q,parseSlotElement:()=>oj,extractSlotContent:()=>aj,applySlots:()=>tj});function nj($,Z){let Y=1,X=Z,J="<template",Q="</template";while(X<$.length&&Y>0){let G=$.indexOf("<",X);if(G===-1)break;if(X=G,$.startsWith(J,X)&&(X+J.length>=$.length||/[\s>\/]/.test($[X+J.length]))){Y++,X+=J.length;continue}if($.startsWith(Q,X)){let K=$.indexOf(">",X+Q.length);if(K!==-1){if(Y--,Y===0)return K+1;X=K+1;continue}}X++}return Y===0?X:-1}function $Q($){let Z={default:"",named:new Map},Y=$,X=/<template\s+(?:#([a-zA-Z][\w-]*)|v-slot:([a-zA-Z][\w-]*)|slot="([a-zA-Z][\w-]*)")(?:\s*=\s*"([^"]*)")?[^>]*>/gi,J=[],Q;while((Q=X.exec($))!==null){let[U,W,_,B,j]=Q,H=W||_||B,L=Q.index+U.length,F=nj($,L);if(F!==-1){let O=$.slice(L,F-11).trim();J.push({start:Q.index,end:F,slotName:H,content:O,propsBinding:j||void 0}),Z.named.set(H,{name:H,content:O,propsBinding:j||void 0})}}J.sort((U,W)=>W.start-U.start);for(let U of J)Y=Y.slice(0,U.start)+Y.slice(U.end);let G=[],K=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi,q;while((q=K.exec(Y))!==null){let[U,W,_,B,j,H]=q,L=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=(L+F).trim(),V=`<${W}${O?" "+O:""}>${H}</${W}>`;G.push({start:q.index,end:q.index+U.length,slotName:B,element:V})}let z=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((q=z.exec(Y))!==null){let[U,W,_,B,j]=q,H=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=(H+L).trim(),O=`<${W}${F?" "+F:""} />`;G.push({start:q.index,end:q.index+U.length,slotName:B,element:O})}G.sort((U,W)=>W.start-U.start);for(let U of G){let W=Z.named.get(U.slotName);if(W)W.content+=U.element;else Z.named.set(U.slotName,{name:U.slotName,content:U.element});Y=Y.slice(0,U.start)+Y.slice(U.end)}return Z.default=Y.trim(),Z}function oj($){let Z=$.match(/name\s*=\s*["']([^"']+)["']/),Y=Z?Z[1]:"",X={},J=/:([a-zA-Z][\w-]*)\s*=\s*["']([^"']+)["']/g,Q;while((Q=J.exec($))!==null)X[Q[1]]=Q[2];let G=$.match(/<slot[^>]*>([\s\S]*?)<\/slot>/i),K=G?G[1].trim():"";return{name:Y,props:X,defaultContent:K}}async function ZQ($,Z,Y,X){if(!$)return Y;let J=$.content;if($.propsBinding&&Object.keys(Z).length>0){let Q=$.propsBinding.trim(),G={...X};if(Q.startsWith("{")&&Q.endsWith("}")){let K=Q.slice(1,-1).split(",").map((q)=>q.trim()).filter(Boolean);for(let q of K){let[z,U]=q.split(":").map((_)=>_.trim()),W=U||z;if(Z[z]!==void 0)G[W]=Z[z]}}else G[Q]=Z;J=sj(J,G)}return J}function sj($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=YQ(J,Z);return d0(String(Q??""))}catch{return`{{ ${X} }}`}})}function YQ($,Z){if(/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)*$/.test($)){let X=$.split("."),J=Z;for(let Q of X)if(J&&typeof J==="object"&&Q in J)J=J[Q];else return;return J}let Y=$.match(/^([a-zA-Z_$][\w$]*)\s*([+\-*/])\s*(\d+)$/);if(Y){let[,X,J,Q]=Y,G=Z[X],K=parseInt(Q,10);if(typeof G==="number")switch(J){case"+":return G+K;case"-":return G-K;case"*":return G*K;case"/":return G/K}}try{if(!Z0($))return;return Y0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function XQ($,Z,Y){let X=$;X=await rj(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,q,z)=>{let U=Z.named.get(K),W=z?.trim()||"",_=q||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(_))!==null){let L=H[1],F=H[2];B[L]=YQ(F,Y)}return await ZQ(U,B,W,Y)});let Q=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return X=X.replace(Q,(G,K)=>{if(G.includes("name="))return G;let q=K?.trim()||"";return Z.default||q}),X}async function rj($,Z,Y){let X=[],J=[];$.replace(Z,(K,...q)=>{let z=q[q.length-2];return J.push({match:K,index:z}),X.push(Y(K,...q.slice(0,-2))),K});let Q=await Promise.all(X),G=$;for(let K=J.length-1;K>=0;K--){let{match:q,index:z}=J[K];G=G.slice(0,z)+Q[K]+G.slice(z+q.length)}return G}function aj($){let Z=$Q($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function tj($,Z,Y,X){return await XQ($,{default:Z,named:Y},X)}var QQ=b(()=>{r0();F0()});import ej from"fs";import d from"path";function GQ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function ZH($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function u1($){return!ZH($)}function p1($){try{let Z=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");Z=Z.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");let Y=[];Z=Z.replace(/\{!![\s\S]*?!!\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{\{[\s\S]*?\}\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`}),Z=Z.replace(/\{\{[\s\S]*?\}\}/g,(Q)=>{let G=Y.length;return Y.push(Q),`"__STX_EXPR_${G}__"`});let J=new Bun.Transpiler({loader:"ts",target:"browser",define:o0()}).transformSync(Z);for(let Q=0;Q<Y.length;Q++)J=J.replace(`"__STX_EXPR_${Q}__"`,Y[Q]),J=J.replace(`'__STX_EXPR_${Q}__'`,Y[Q]);return J}catch(Z){if(process.env.STX_DEBUG_TS)console.warn("[STX] TypeScript transpilation error:",Z);return $}}function YH($){let Z=[],Y=new Set,X=0,J=0,Q=$.length,G=(U)=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]===U){J++;return}J++}},K=()=>{J++;while(J<Q){if($[J]==="\\"){J+=2;continue}if($[J]==="`"){J++;return}if($[J]==="$"&&$[J+1]==="{"){J+=2;let U=1;while(J<Q&&U>0)if($[J]==="{")U++,J++;else if($[J]==="}")U--,J++;else if($[J]==="'"||$[J]==='"')G($[J]);else if($[J]==="`")K();else J++;continue}J++}},q=()=>{if($[J]==="/"&&$[J+1]==="/"){while(J<Q&&$[J]!==`
|
|
13432
|
-
`)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},z=()=>{if(X!==0)return;let U=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(U){let j=U[2].split(",").map((H)=>{let L=H.trim().split(":");return L[L.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let W=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(W){let j=W[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(q())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))z();J++}return Z}function XH($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function JH($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function QH($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let J=X,Q=0,G=-1;for(;X>=0;X--){let q=$[X];if(q==="}")Q++;else if(q==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let q of XH(K)){let z=q.trim();if(!z||z.startsWith("..."))continue;let U=JH(z);if(U===-1)continue;let W=z.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=z.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[W]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function UY($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(L)=>L.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""),K=(L)=>L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=Y.__importedComponents;if(q){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(q.has(L))return!0}let z=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?d.resolve(J.root):void 0,W=U??d.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(d.join(d.dirname(j),"components"));B(Z),B(d.join(d.dirname(X),"components")),B(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let L of H)B(typeof L==="string"?L:null);if(U)B(d.resolve(U,"resources/views/components")),B(d.resolve(U,"resources/components")),B(d.resolve(U,"src/components")),B(d.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return n(d.resolve(d.dirname(X),`${Q}.stx`));for(let L of _){let F=d.isAbsolute(L)?L:d.resolve(W,L);for(let O of z)if(await n(d.join(F,O)))return!0}return!1}function GH($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function K1($,Z,Y,X,J,Q,G,K=new Set,q){let{extractVariables:z}=await Promise.resolve().then(() => (a5(),T4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let W=new Set(U);W.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&GH(_)?_:"";try{let j=(
|
|
13432
|
+
`)J++;return!0}if($[J]==="/"&&$[J+1]==="*"){J+=2;while(J<Q-1&&!($[J]==="*"&&$[J+1]==="/"))J++;return J+=2,!0}return!1},z=()=>{if(X!==0)return;let U=$.slice(J).match(/^(const|let|var)\s*\{([^}]+)\}\s*=/);if(U){let j=U[2].split(",").map((H)=>{let L=H.trim().split(":");return L[L.length-1].trim()});for(let H of j)if(H&&/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(H)&&!Y.has(H))Z.push(H),Y.add(H);return}let W=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(W){let j=W[2];if(!Y.has(j))Z.push(j),Y.add(j);return}let _=$.slice(J).match(/^function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(_){let j=_[1];if(!Y.has(j))Z.push(j),Y.add(j);return}let B=$.slice(J).match(/^async\s+function\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/);if(B){let j=B[1];if(!Y.has(j))Z.push(j),Y.add(j)}};while(J<Q){if(q())continue;if($[J]==="'"||$[J]==='"'){G($[J]);continue}if($[J]==="`"){K();continue}if($[J]==="{"){X++,J++;continue}if($[J]==="}"){X--,J++;continue}if(X===0&&/[a-z]/i.test($[J])&&(J===0||/\s|[;{}()]/.test($[J-1])))z();J++}return Z}function XH($){let Z=[],Y=0,X=0,J=null;for(let Q=0;Q<$.length;Q++){let G=$[Q];if(J){if(G==="\\"){Q++;continue}if(G===J)J=null;continue}if(G==='"'||G==="'"||G==="`"){J=G;continue}if(G==="("||G==="["||G==="{")Y++;else if(G===")"||G==="]"||G==="}")Y--;else if(G===","&&Y===0)Z.push($.slice(X,Q)),X=Q+1}if(X<$.length)Z.push($.slice(X));return Z}function JH($){let Z=0,Y=null;for(let X=0;X<$.length;X++){let J=$[X];if(Y){if(J==="\\"){X++;continue}if(J===Y)Y=null;continue}if(J==='"'||J==="'"||J==="`"){Y=J;continue}if(J==="("||J==="["||J==="{")Z++;else if(J===")"||J==="]"||J==="}")Z--;else if(J==="="&&Z===0){let Q=$[X-1],G=$[X+1];if(Q==="!"||Q==="<"||Q===">"||Q==="=")continue;if(G==="="||G===">")continue;return X}}return-1}function QH($,Z){try{let Y=/=\s*(?:withDefaults\s*\([\s\S]*?defineProps|defineProps)\b/.exec($);if(!Y)return;let X=Y.index-1;while(X>=0&&/\s/.test($[X]))X--;if($[X]!=="}")return;let J=X,Q=0,G=-1;for(;X>=0;X--){let q=$[X];if(q==="}")Q++;else if(q==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let q of XH(K)){let z=q.trim();if(!z||z.startsWith("..."))continue;let U=JH(z);if(U===-1)continue;let W=z.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(W))continue;if(Z[W]!==void 0)continue;let _=z.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[W]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function UY($,Z,Y,X,J){let Q=$.endsWith(".stx")?$.slice(0,-4):$,G=(L)=>L.split("-").map((F)=>F.charAt(0).toUpperCase()+F.slice(1)).join(""),K=(L)=>L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),q=Y.__importedComponents;if(q){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(q.has(L))return!0}let z=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?d.resolve(J.root):void 0,W=U??d.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(d.join(d.dirname(j),"components"));B(Z),B(d.join(d.dirname(X),"components")),B(J.componentsDir);let H=J._pluginComponentDirs;if(Array.isArray(H))for(let L of H)B(typeof L==="string"?L:null);if(U)B(d.resolve(U,"resources/views/components")),B(d.resolve(U,"resources/components")),B(d.resolve(U,"src/components")),B(d.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return n(d.resolve(d.dirname(X),`${Q}.stx`));for(let L of _){let F=d.isAbsolute(L)?L:d.resolve(W,L);for(let O of z)if(await n(d.join(F,O)))return!0}return!1}function GH($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function K1($,Z,Y,X,J,Q,G,K=new Set,q){let{extractVariables:z}=await Promise.resolve().then(() => (a5(),T4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let W=new Set(U);W.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&GH(_)?_:"";try{let j=(C)=>C.split("-").map((x)=>x.charAt(0).toUpperCase()+x.slice(1)).join(""),H=(C)=>C.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),L=$.endsWith(".stx")?$.slice(0,-4):$,F=null,O=J.__importedComponents;if(O){let C=[L,L.toLowerCase(),j(L),H(L)];for(let x of C)if(O.has(x)){F=O.get(x);break}}let V=[];if(!F){let C=[`${L}.stx`,`${j(L)}.stx`,`${H(L)}.stx`],x=[...new Set(C)],f=J.__originalFilePath,h=[];if(f){let z0=d.join(d.dirname(f),"components");h.push(z0)}if(X)h.push(X);let p=d.join(d.dirname(Q),"components");if(!h.includes(p))h.push(p);if(G.componentsDir&&G.componentsDir!==X&&!h.includes(G.componentsDir))h.push(G.componentsDir);let r=G._pluginComponentDirs;if(Array.isArray(r)){for(let z0 of r)if(typeof z0==="string"&&!h.includes(z0))h.push(z0)}let K0=typeof G.root==="string"?d.resolve(G.root):void 0,T0=K0??d.dirname(Q),C0=[];if(K0)C0.push(d.resolve(K0,"resources/views/components")),C0.push(d.resolve(K0,"resources/components")),C0.push(d.resolve(K0,"src/components")),C0.push(d.resolve(K0,"components"));C0.push(d.resolve(import.meta.dir,"components"));for(let z0 of C0)if(!h.includes(z0))h.push(z0);let T1=[...new Set(h.map((z0)=>{if(!z0)return z0;return d.isAbsolute(z0)?z0:d.resolve(T0,z0)}))];if(h.length=0,h.push(...T1),L.startsWith("./")||L.startsWith("../"))F=d.resolve(d.dirname(Q),`${L}.stx`),V.push(F);else for(let z0 of h){if(!z0)continue;for(let M1 of x){let M5=d.join(z0,M1);if(V.push(M5),await n(M5)){F=M5;break}}if(F)break;if(!F)try{let M1=await import("fs");if(!M1.statSync(z0,{throwIfNoEntry:!1})?.isDirectory())continue;let q$=8,e=[{path:z0,depth:0}];while(e.length>0&&!F){let n0=e.pop();if(n0.depth>=q$)continue;let Z3;try{Z3=M1.readdirSync(n0.path,{withFileTypes:!0})}catch{continue}for(let z$ of Z3){if(!z$.isDirectory())continue;if(z$.name==="node_modules"||z$.name.startsWith("."))continue;let _9=d.join(n0.path,z$.name);for(let MQ of x){let Y3=d.join(_9,MQ);if(V.push(Y3),await n(Y3)){F=Y3;break}}if(F)break;e.push({path:_9,depth:n0.depth+1})}}}catch{}if(F)break}}if(!F||!await n(F)){let C=V.length>0?`
|
|
13433
13433
|
Searched paths:
|
|
13434
13434
|
${V.map((x)=>` - ${x}`).join(`
|
|
13435
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${
|
|
13436
|
-
`)}`}if(Y&&g.includes("{{ text || slot }}"))g=g.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:u,applySlots:s}=await Promise.resolve().then(() => (QQ(),JQ)),{defaultSlot:N0,namedSlots:$1}=u(Y);g=await s(g,N0||Y,$1,N);for(let[
|
|
13435
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${C}`}q.add(F);let A;if(G$.has(F))A=G$.get(F);else try{A=await Bun.file(F).text(),G$.set(F,A)}catch(C){return`[Error loading component: ${C instanceof Error?C.message:String(C)}]`}let w=new Set(["__originalFilePath","__importedComponents"]),R={};for(let[C,x]of Object.entries(J))if(!C.startsWith("__")||w.has(C))R[C]=x;let N={...R,...Z,props:Z,slot:Y,__processedComponents:W,__sections:{}};QH(A,N);let M=A,T=M.match(/<template\b(?![^>]*\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=)[^>]*>([\s\S]*?)<\/template>/i);if(T)M=T[1].trim();let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,D=[...A.matchAll(I)],E=[];for(let C of D){let x=C[1]||"",f=C[2]||"",h=x.includes("server");if(u1(x)&&f.trim())f=p1(f);if(h&&f)try{await z(f,N,F)}catch(r){}if(!h){let r=f.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(r.includes("{{")&&r.includes("}}"))r=s0(r,N,F);let K0=x.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${K0}>${r}</script>`)}}let k=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),S=k?k[1]:"",y=k?k[2]:"",P="",m=S&&/\bscoped\b/i.test(S);if(k)P=`<style${S}>${y}</style>`;let g=M;if(g=g.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),k)g=g.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let C=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,x=[];if(g=g.replace(C,(f,h)=>{let p=h.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(p)x.push(`<style${p[1]}>${p[2]}</style>`);return""}),g=g.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),x.length>0)P=`${P}${x.join(`
|
|
13436
|
+
`)}`}if(Y&&g.includes("{{ text || slot }}"))g=g.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:u,applySlots:s}=await Promise.resolve().then(() => (QQ(),JQ)),{defaultSlot:N0,namedSlots:$1}=u(Y);g=await s(g,N0||Y,$1,N);for(let[C,x]of Object.entries(N))if(typeof x==="string"){if(x.includes("<")&&x.includes(">")||x.includes("<")||x.includes(""")){let f=H3(x);N[C]=f}}let y0=E.some((C)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(C)),E0={...G,componentsDir:d.dirname(F),skipSignalsRuntime:!0,skipEventDirectives:y0,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let J0=await A0(g,N,F,E0,q),L0=`stx_${L.replace(/[^a-zA-Z0-9]/g,"_")}_${++$H}_${Math.random().toString(36).slice(2,8)}`,U0=J0;if(y0){let C="";if(Object.keys(Z).length>0)try{C=` data-stx-props="${GQ(JSON.stringify(Z))}"`}catch{}let x=B?` stx-hydrate="${GQ(B)}"`:"";if(U0=`<div data-stx-scope="${L0}"${C}${x}>${J0}</div>`,U0=E.map((h)=>{let p=h.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!p)return h;let[,r,K0]=p,T0=X1(K0),C0=`
|
|
13437
13437
|
(function() {
|
|
13438
13438
|
const { state, derived, effect, batch, defineEmits, defineExpose, defineSlots, defineProps, withDefaults, useStore, useFetch, useRef, useQuery, useMutation, useOptimistic, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useSessionStorage, useCookie, useReactiveProp, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, definePageMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, inject, ref, reactive, computed, watch, watchEffect, nextTick } = window.stx;
|
|
13439
13439
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
@@ -13445,23 +13445,23 @@ ${V.map((x)=>` - ${x}`).join(`
|
|
|
13445
13445
|
const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
|
|
13446
13446
|
const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
|
|
13447
13447
|
|
|
13448
|
-
${
|
|
13448
|
+
${T0}
|
|
13449
13449
|
|
|
13450
13450
|
// Register all defined signals and functions in this scope
|
|
13451
13451
|
const __localVars = {};
|
|
13452
13452
|
try {
|
|
13453
|
-
${YH(
|
|
13453
|
+
${YH(T0).map((T1)=>`if (typeof ${T1} !== 'undefined') __localVars['${T1}'] = ${T1};`).join(`
|
|
13454
13454
|
`)}
|
|
13455
13455
|
}
|
|
13456
13456
|
catch (e) {}
|
|
13457
13457
|
Object.assign(__scopeVars, __localVars);
|
|
13458
13458
|
})();`;if(B)return`<script type="stx/island" data-stx-island="${L0}" data-stx-scoped${r}>${C0}</script>`;return`<script data-stx-scoped${r}>${C0}</script>`}).join(`
|
|
13459
13459
|
`)+`
|
|
13460
|
-
`+U0,
|
|
13461
|
-
`+
|
|
13462
|
-
`+
|
|
13460
|
+
`+U0,P)U0+=`
|
|
13461
|
+
`+P}else{if(P)U0+=`
|
|
13462
|
+
`+P;if(E.length>0){let C=N.__stx_event_bindings||[],x=J$(N),f=await Promise.all(E.map(async(h)=>{let p=h.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!p)return h;return await Q$(p[1],{eventBindings:C,templateContent:U0,filePath:F,projectRoot:process.cwd(),serverData:x})}));U0+=`
|
|
13463
13463
|
`+f.join(`
|
|
13464
|
-
`),N.__stx_event_bindings=[]}}if(m){let
|
|
13464
|
+
`),N.__stx_event_bindings=[]}}if(m){let C=k4(U0,F);if(C.hasScoped)U0=C.html}return U0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{U.delete($)}}async function n($){return Bun.file($).exists()}function q9($,Z){let Y=d.resolve(Z),X=d.resolve($),J=Y.endsWith(d.sep)?Y:Y+d.sep;if(X===Y||X.startsWith(J))return X;return null}async function t$($,Z,Y,X){let J=await KH($,Z,Y,X);if(J===null)return null;let Q=q9(J,process.cwd());if(Q)return Q;let G=[Y.root,Y.layoutsDir,Y.componentsDir,Y.partialsDir,Y.pagesDir].filter((K)=>typeof K==="string"&&K.length>0);for(let K of G){let q=d.isAbsolute(K)?K:d.resolve(process.cwd(),K);if(q9(J,q))return d.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${$}, from: ${Z})`),null}async function KH($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let J=d.dirname(Z),Q=process.cwd();if($.startsWith("/")){let _=d.join(Q,$),B=q9(_,Q);if(!B)return console.warn(`[stx] rejected template path that escapes project root: ${$} (from ${Z})`),null;if(Y.debug)console.log(`Checking absolute path: ${B}`);if(await n(B)&&X)X.add(B);return B}let G=d.join(J,$);if(await n(G)){if(Y.debug)console.log(`Found direct path: ${G}`);if(X)X.add(G);return G}if(!$.endsWith(".stx")&&!$.endsWith(".jsx")&&!$.endsWith(".tsx"))for(let _ of[".stx",".tsx",".jsx"]){let B=`${G}${_}`;if(await n(B)){if(Y.debug)console.log(`Found direct path with extension: ${B}`);if(X)X.add(B);return B}}let K="",q=d.resolve(J),z=process.cwd();for(let _=0;_<10;_++){let B=d.join(q,"layouts"),j=!1;try{j=ej.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=B;break}let H=d.dirname(q);if(H===q||H.length<z.length)break;q=H}if(K){let _=$.startsWith("layouts/")?$.slice(8):$,B=d.join(K,_);if(await n(B)){if(Y.debug)console.log(`Found in current layouts dir: ${B}`);if(X)X.add(B);return B}if(!_.endsWith(".stx")){let j=`${B}.stx`;if(await n(j)){if(Y.debug)console.log(`Found in current layouts dir with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.layoutsDir){let _=d.isAbsolute(Y.layoutsDir)?Y.layoutsDir:d.resolve(process.cwd(),Y.layoutsDir),B=$.startsWith("layouts/")?$.slice(8):$,j=d.join(_,B);if(await n(j)){if(Y.debug)console.log(`Found in options.layoutsDir: ${j}`);if(X)X.add(j);return j}if(!$.endsWith(".stx")){let H=`${j}.stx`;if(await n(H)){if(Y.debug)console.log(`Found in options.layoutsDir with extension: ${H}`);if(X)X.add(H);return H}}}if($.startsWith("layouts/")||$.includes("/layouts/")){let _=$.split("layouts/"),B=d.join(Y.partialsDir||J,"layouts",_[1]);if(await n(B)){if(Y.debug)console.log(`Found in layouts path: ${B}`);if(X)X.add(B);return B}if(!B.endsWith(".stx")){let j=`${B}.stx`;if(await n(j)){if(Y.debug)console.log(`Found in layouts path with extension: ${j}`);if(X)X.add(j);return j}}}if(Y.partialsDir){if(K=d.join(Y.partialsDir,"layouts"),await n(K)){let _=d.join(K,$);if(await n(_)){if(Y.debug)console.log(`Found in partials layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await n(B)){if(Y.debug)console.log(`Found in partials layouts dir with extension: ${B}`);if(X)X.add(B);return B}}}}let U=Y.partialsDir||d.join(process.cwd(),"views"),W=d.join(U,$);if(await n(W)){if(Y.debug)console.log(`Found in views path: ${W}`);if(X)X.add(W);return W}if(!$.endsWith(".stx")){let _=`${W}.stx`;if(await n(_)){if(Y.debug)console.log(`Found in views path with extension: ${_}`);if(X)X.add(_);return _}}if(J.includes("temp")){let _=d.join(d.dirname(J),"layouts",$);if(await n(_)){if(Y.debug)console.log(`Found in temp layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await n(B)){if(Y.debug)console.log(`Found in temp layouts dir with extension: ${B}`);if(X)X.add(B);return B}}}if(Y.debug)console.warn(`Template not found after trying all paths: ${$} (referenced from ${Z})`);else console.warn(`Template not found: ${$} (referenced from ${Z})`);return null}function KQ($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
|
|
13465
13465
|
`),K=0;for(let q=0;q<G.length;q++)if(K+=G[q].length+1,K>=Z){X=q+1,J=G[q].trim();let z=Math.max(0,q-2),U=Math.min(G.length,q+3);Q=G.slice(z,U).map((W,_)=>{let B=z+_+1;return`${B===X?"> ":" "}${B}: ${W}`}).join(`
|
|
13466
13466
|
`);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return KQ($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function Q0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=KQ(X,J,Q),q=Y.split("/").pop(),z=0;if(typeof J==="number"&&J>=0&&X){let W=X.lastIndexOf(`
|
|
13467
13467
|
`,Math.max(0,J-1));z=J-(W+1)+1}let U="";if(G>0)U+=`
|