@stacksjs/stx 0.2.84 → 0.2.85
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 +5 -5
package/dist/story/cli.js
CHANGED
|
@@ -1117,7 +1117,7 @@ ${H}
|
|
|
1117
1117
|
filter: blur(0);
|
|
1118
1118
|
transform: scale(1);
|
|
1119
1119
|
}
|
|
1120
|
-
`.trim();U5=new Map});import{createHash as K6}from"crypto";import{readFile as Fz,stat as WZ}from"fs/promises";async function E0($){try{let Z=await Fz($);return K6("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function PV($){return K6("sha256").update($).digest("hex").slice(0,16)}function zZ($){return K6("sha256").update($).digest("hex").slice(0,16)}function a$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${zZ($)}-${zZ(Y)}`}async function z6($){try{return(await WZ($)).mtimeMs}catch{return 0}}async function T0($){try{return await WZ($),!0}catch{return!1}}var h1=()=>{};import{mkdir as Vz,readFile as qZ,writeFile as wz,readdir as _Z,rm as W6,stat as Az}from"fs/promises";import{join as q5,dirname as Rz}from"path";async function Nz($){try{await Vz($,{recursive:!0})}catch{}}function BZ($,Z,Y){return q5($,Y,`${Z}.json`)}async function UZ($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await z6(Z)!==$.srcMtime)return!1;return!0}async function t$($,Z,Y,X=_5){if(!X.enabled)return null;let J=a$($,Z),Q=X1.get(J);if(Q){if(await UZ(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;X1.delete(J)}let G=BZ(X.directory,J,Y);if(await T0(G))try{let K=await qZ(G,"utf-8"),z=JSON.parse(K);if(await UZ(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),X1.set(J,z),z.data}catch{}return null}async function e$($,Z,Y,X,J=_5){if(!J.enabled)return;let Q=a$($,Z),G=await E0($),K=await z6($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:a$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};X1.set(Q,z);let W=BZ(J.directory,Q,X);try{await Nz(Rz(W)),await wz(W,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function fV($,Z,Y=_5){for(let[X,J]of X1.entries())if(J.src===$)X1.delete(X)}async function $4($,Z=_5){if($==="all")X1.clear();else X1.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=q5(Z.directory,X);try{await W6(J,{recursive:!0,force:!0})}catch{}}}async function gV($=_5){let Z={memoryEntries:X1.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=q5($.directory,Y);try{let J=await _Z(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=q5(X,Q),K=await Az(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function hV($=_5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=q5($.directory,X);try{let Q=await _Z(J);for(let G of Q){let K=q5(J,G);try{let z=await qZ(K,"utf-8"),W=JSON.parse(z);if(Date.now()-W.createdAt>Y)await W6(K),X1.delete(W.key),Z++}catch{await W6(K).catch(()=>{}),Z++}}}catch{}}return Z}var X1,_5;var U6=P(()=>{h1();X1=new Map,_5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class Y4{config;constructor($={}){this.config={...Tz,...$}}async get($,Z){return t$($,Z,"image",this.config)}async set($,Z,Y){return e$($,Z,Y,"image",this.config)}async clear(){return $4("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function q6($){if(!Z4)Z4=new Y4($);else if($)Z4.updateConfig($);return Z4}async function X4($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q6(X).get($,Z)}async function J4($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return q6(J).set($,Z,Y)}async function jZ(){return q6().clear()}var Tz,Z4=null;var _6=P(()=>{U6();Tz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as Mz,basename as Dz,extname as Ez,join as Iz}from"path";import{mkdir as kz}from"fs/promises";async function B6(){try{return await import("ts-images")}catch{return null}}function HZ($){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 Sz($,Z){let Y=Z?HZ(Z):HZ("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 OZ($,Z,Y){let X=await B6();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await X4($,Z,Y);if(J)return J;try{let Q=Mz($);if(!await T0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=Sz(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await kz(K,{recursive:!0});let W=await E0(Q),U=Dz($,Ez($)),q=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:W},B=null;if(Z.transformations&&Z.transformations.length>0)B=await j6(Q,Z.transformations,X);for(let j of q){let H=G[j]||{},L=`${U}-${W}.${j}`,F=Iz(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:`${z}/${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 J4($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function LZ($,Z,Y,X){let J=await B6();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 j6($,Z,Y){let X=Y||await B6();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 FZ=P(()=>{h1();_6()});import{resolve as bz,basename as Pz,extname as Cz,join as yz}from"path";import{mkdir as vz}from"fs/promises";async function xz(){try{return await import("ts-images")}catch{return null}}async function H6($,Z,Y){let X=await xz();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=bz($);if(!await T0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||fz,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await vz(K,{recursive:!0});let W=await E0(J),U=Pz($,Cz($)),q=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-${W}.${j}`,O=yz(K,F),V=`${z}/${F}`;try{let A=q[j]?.quality||80;if(await T0(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||gz(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function gz($){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 VZ($,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 eV($,Z,Y){let X=[];for(let J of Z){let Q=await H6(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:hz(G)})}}return X}function hz($){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 fz;var wZ=P(()=>{h1();fz=[320,480,640,768,1024,1280,1536,1920]});var AZ={};u(AZ,{setCachedImageResult:()=>J4,processImage:()=>OZ,optimizeImage:()=>LZ,getCachedImageResult:()=>X4,generateSrcset:()=>VZ,generateResponsiveVariants:()=>H6,clearImageCache:()=>jZ,applyTransformations:()=>j6,ImageProcessorCache:()=>Y4});var RZ=P(()=>{FZ();wZ();_6()});async function dz(){try{return await Promise.resolve().then(() => (RZ(),AZ))}catch($){if(!NZ)console.warn("[stx-media] Image processor not available, some features disabled:",$),NZ=!0;return null}}async function r5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return cz(X,Y)}if(Y.processedResult?.processed)return V6($,Y.processedResult,Z);if(Y.responsiveVariants)return EZ($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=g1,dpr:U,formats:q=W5,quality:_=O6,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":G4,decoding:V=Q4,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,D=$.style,E=$.id,I=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return lz($);let b,C,d=E||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{b=await GZ(J,{strategy:j,...H}),C=QZ(d,b,H)}catch{}let f=U!==void 0&&G!==void 0,m;if(f)m=mz($,d,b,Z);else m=await uz($,d,b,Z);let o;if(F){let x0=q.includes("webp")?"webp":q[0],S0=s5(J,W,{...B,q:_},x0),X0=typeof z==="object"?Y6(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${S0}" imagesizes="${X0}" />`}let D0=[];if(!TZ&&j!=="none")D0.push(Q6),TZ=!0;if(C)D0.push(C);let G1=L?DZ(d):void 0;return{html:m,preloadLink:o,css:D0.length>0?D0.join(`
|
|
1120
|
+
`.trim();U5=new Map});import{createHash as K6}from"crypto";import{readFile as Fz,stat as WZ}from"fs/promises";async function I0($){try{let Z=await Fz($);return K6("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function PV($){return K6("sha256").update($).digest("hex").slice(0,16)}function zZ($){return K6("sha256").update($).digest("hex").slice(0,16)}function a$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${zZ($)}-${zZ(Y)}`}async function z6($){try{return(await WZ($)).mtimeMs}catch{return 0}}async function T0($){try{return await WZ($),!0}catch{return!1}}var h1=()=>{};import{mkdir as Vz,readFile as qZ,writeFile as wz,readdir as _Z,rm as W6,stat as Az}from"fs/promises";import{join as q5,dirname as Rz}from"path";async function Nz($){try{await Vz($,{recursive:!0})}catch{}}function BZ($,Z,Y){return q5($,Y,`${Z}.json`)}async function UZ($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await z6(Z)!==$.srcMtime)return!1;return!0}async function t$($,Z,Y,X=_5){if(!X.enabled)return null;let J=a$($,Z),Q=X1.get(J);if(Q){if(await UZ(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;X1.delete(J)}let G=BZ(X.directory,J,Y);if(await T0(G))try{let K=await qZ(G,"utf-8"),z=JSON.parse(K);if(await UZ(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),X1.set(J,z),z.data}catch{}return null}async function e$($,Z,Y,X,J=_5){if(!J.enabled)return;let Q=a$($,Z),G=await I0($),K=await z6($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:a$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};X1.set(Q,z);let W=BZ(J.directory,Q,X);try{await Nz(Rz(W)),await wz(W,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function fV($,Z,Y=_5){for(let[X,J]of X1.entries())if(J.src===$)X1.delete(X)}async function $4($,Z=_5){if($==="all")X1.clear();else X1.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=q5(Z.directory,X);try{await W6(J,{recursive:!0,force:!0})}catch{}}}async function gV($=_5){let Z={memoryEntries:X1.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=q5($.directory,Y);try{let J=await _Z(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=q5(X,Q),K=await Az(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function hV($=_5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=q5($.directory,X);try{let Q=await _Z(J);for(let G of Q){let K=q5(J,G);try{let z=await qZ(K,"utf-8"),W=JSON.parse(z);if(Date.now()-W.createdAt>Y)await W6(K),X1.delete(W.key),Z++}catch{await W6(K).catch(()=>{}),Z++}}}catch{}}return Z}var X1,_5;var U6=P(()=>{h1();X1=new Map,_5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class Y4{config;constructor($={}){this.config={...Tz,...$}}async get($,Z){return t$($,Z,"image",this.config)}async set($,Z,Y){return e$($,Z,Y,"image",this.config)}async clear(){return $4("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function q6($){if(!Z4)Z4=new Y4($);else if($)Z4.updateConfig($);return Z4}async function X4($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return q6(X).get($,Z)}async function J4($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return q6(J).set($,Z,Y)}async function jZ(){return q6().clear()}var Tz,Z4=null;var _6=P(()=>{U6();Tz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as Mz,basename as Dz,extname as Ez,join as Iz}from"path";import{mkdir as kz}from"fs/promises";async function B6(){try{return await import("ts-images")}catch{return null}}function HZ($){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 Sz($,Z){let Y=Z?HZ(Z):HZ("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 OZ($,Z,Y){let X=await B6();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await X4($,Z,Y);if(J)return J;try{let Q=Mz($);if(!await T0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=Sz(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await kz(K,{recursive:!0});let W=await I0(Q),U=Dz($,Ez($)),q=Z.outputFormat?[Z.outputFormat]:Y.defaultFormats||["avif","webp","jpeg"],_={src:$,processed:!0,variants:[],hash:W},B=null;if(Z.transformations&&Z.transformations.length>0)B=await j6(Q,Z.transformations,X);for(let j of q){let H=G[j]||{},L=`${U}-${W}.${j}`,F=Iz(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:`${z}/${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 J4($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function LZ($,Z,Y,X){let J=await B6();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 j6($,Z,Y){let X=Y||await B6();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 FZ=P(()=>{h1();_6()});import{resolve as bz,basename as Pz,extname as Cz,join as yz}from"path";import{mkdir as vz}from"fs/promises";async function xz(){try{return await import("ts-images")}catch{return null}}async function H6($,Z,Y){let X=await xz();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=bz($);if(!await T0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||fz,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await vz(K,{recursive:!0});let W=await I0(J),U=Pz($,Cz($)),q=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-${W}.${j}`,O=yz(K,F),V=`${z}/${F}`;try{let A=q[j]?.quality||80;if(await T0(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||gz(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function gz($){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 VZ($,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 eV($,Z,Y){let X=[];for(let J of Z){let Q=await H6(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:hz(G)})}}return X}function hz($){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 fz;var wZ=P(()=>{h1();fz=[320,480,640,768,1024,1280,1536,1920]});var AZ={};u(AZ,{setCachedImageResult:()=>J4,processImage:()=>OZ,optimizeImage:()=>LZ,getCachedImageResult:()=>X4,generateSrcset:()=>VZ,generateResponsiveVariants:()=>H6,clearImageCache:()=>jZ,applyTransformations:()=>j6,ImageProcessorCache:()=>Y4});var RZ=P(()=>{FZ();wZ();_6()});async function dz(){try{return await Promise.resolve().then(() => (RZ(),AZ))}catch($){if(!NZ)console.warn("[stx-media] Image processor not available, some features disabled:",$),NZ=!0;return null}}async function r5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return cz(X,Y)}if(Y.processedResult?.processed)return V6($,Y.processedResult,Z);if(Y.responsiveVariants)return EZ($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=g1,dpr:U,formats:q=W5,quality:_=O6,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":G4,decoding:V=Q4,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,D=$.style,E=$.id,I=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return lz($);let b,y,d=E||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{b=await GZ(J,{strategy:j,...H}),y=QZ(d,b,H)}catch{}let f=U!==void 0&&G!==void 0,m;if(f)m=mz($,d,b,Z);else m=await uz($,d,b,Z);let o;if(F){let x0=q.includes("webp")?"webp":q[0],b0=s5(J,W,{...B,q:_},x0),X0=typeof z==="object"?Y6(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${b0}" imagesizes="${X0}" />`}let D0=[];if(!TZ&&j!=="none")D0.push(Q6),TZ=!0;if(y)D0.push(y);let G1=L?DZ(d):void 0;return{html:m,preloadLink:o,css:D0.length>0?D0.join(`
|
|
1121
1121
|
`):void 0,script:G1}}async function uz($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=g1,formats:U=W5,quality:q=O6,params:_={},lazy:B=!0,priority:j=!1,loading:H=j?"eager":G4,decoding:L=Q4,fetchpriority:F,objectFit:O,objectPosition:V,crossorigin:A,referrerpolicy:w}=$,R=$.class,N=$.style,M=$.data||{},T=typeof z==="object"?Y6(z):z||"100vw",D=[];for(let k of U){let S=s5(J,W,{..._,q},k),b=X6(k);if(B&&!j)D.push(` <source type="${b}" data-srcset="${S}" data-sizes="${T}" />`);else D.push(` <source type="${b}" srcset="${S}" sizes="${T}" />`)}let E=L6({src:O1(J,{..._,q}),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:MZ(R,Y),style:F6(N,O,V,Y),lazy:B&&!j,data:M}),I;if(Y){let k=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;I=`<div id="${Z}" class="stx-img-placeholder" style="${k}">
|
|
1122
1122
|
<picture>
|
|
1123
1123
|
${D.join(`
|
|
@@ -1167,7 +1167,7 @@ ${D.join(`
|
|
|
1167
1167
|
|
|
1168
1168
|
observer.observe(container);
|
|
1169
1169
|
})();
|
|
1170
|
-
`.trim()}function pz($){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,z,W,U]=Q,q=z??W??U??!0;if(G===":"&&typeof q==="string")try{X[K]=JSON.parse(q)}catch{X[K]=q}else switch(K){case"src":X.src=String(q);break;case"alt":X.alt=String(q);break;case"width":X.width=Number(q)||q;break;case"height":X.height=Number(q)||q;break;case"sizes":X.sizes=String(q);break;case"quality":X.quality=Number(q);break;case"placeholder":X.placeholder=q;break;case"lazy":X.lazy=q===!0||q==="true";break;case"priority":X.priority=q===!0||q==="true";break;case"class":X.class=String(q);break;case"style":X.style=String(q);break;case"id":X.id=String(q);break;case"loading":X.loading=q;break;case"decoding":X.decoding=q;break;case"fetchpriority":X.fetchpriority=q;break;case"objectFit":X.objectFit=q;break;case"objectPosition":X.objectPosition=String(q);break;case"crossorigin":X.crossorigin=q;break}}if(!X.src||!X.alt)return null;return X}async function Gw($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],z;while((z=Y.exec($))!==null)K.push({match:z[0],index:z.index});for(let W=K.length-1;W>=0;W--){let{match:U}=K[W],q=pz(U);if(q){let _=await r5(q,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 cz($,Z){let Y=await dz();if(!Y)return r5({...$,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 EZ($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return V6($,Q,Z)}return r5({...$,process:!1},Z)}async function V6($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:z,objectPosition:W,crossorigin:U,referrerpolicy:q}=$,_=$.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 pz($){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,z,W,U]=Q,q=z??W??U??!0;if(G===":"&&typeof q==="string")try{X[K]=JSON.parse(q)}catch{X[K]=q}else switch(K){case"src":X.src=String(q);break;case"alt":X.alt=String(q);break;case"width":X.width=Number(q)||q;break;case"height":X.height=Number(q)||q;break;case"sizes":X.sizes=String(q);break;case"quality":X.quality=Number(q);break;case"placeholder":X.placeholder=q;break;case"lazy":X.lazy=q===!0||q==="true";break;case"priority":X.priority=q===!0||q==="true";break;case"class":X.class=String(q);break;case"style":X.style=String(q);break;case"id":X.id=String(q);break;case"loading":X.loading=q;break;case"decoding":X.decoding=q;break;case"fetchpriority":X.fetchpriority=q;break;case"objectFit":X.objectFit=q;break;case"objectPosition":X.objectPosition=String(q);break;case"crossorigin":X.crossorigin=q;break}}if(!X.src||!X.alt)return null;return X}async function Gw($,Z={}){let Y=/<Img\s+[^>]*?\/?>/g,X=[],J=[],Q=[],G=$,K=[],z;while((z=Y.exec($))!==null)K.push({match:z[0],index:z.index});for(let W=K.length-1;W>=0;W--){let{match:U}=K[W],q=pz(U);if(q){let _=await r5(q,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 cz($,Z){let Y=await dz();if(!Y)return r5({...$,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 EZ($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return V6($,Q,Z)}return r5({...$,process:!1},Z)}async function V6($,Z,Y){let{alt:X,width:J,height:Q,lazy:G=!0,priority:K=!1,objectFit:z,objectPosition:W,crossorigin:U,referrerpolicy:q}=$,_=$.class,B=$.style,j=$.id||`stx-img-${Math.random().toString(36).slice(2,8)}`,H=$.data||{},L=Z.variants||[],F=L.find((y)=>y.format==="jpeg")||L.find((y)=>y.format==="webp")||L[0],O=F?.url||$.src,V=L.filter((y)=>y.format===(F?.format||"jpeg")).map((y)=>`${y.url} ${y.width}w`).join(", "),A=new Map;for(let y of L){if(!A.has(y.format))A.set(y.format,[]);A.get(y.format).push(y)}let w=[],R=["avif","webp","jpeg","png"];for(let y of R){let d=A.get(y);if(d&&d.length>0){let f=d.map((o)=>`${o.url} ${o.width}w`).join(", "),m=X6(y);if(G&&!K)w.push(` <source type="${m}" data-srcset="${f}" />`);else w.push(` <source type="${m}" srcset="${f}" />`)}}let N=[];if(G&&!K){if(N.push(`data-src="${i0(O)}"`),N.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),V)N.push(`data-srcset="${V}"`)}else if(N.push(`src="${i0(O)}"`),V)N.push(`srcset="${V}"`);N.push(`alt="${i0(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(q)N.push(`referrerpolicy="${q}"`);let D=[];if(z)D.push(`object-fit: ${z}`);if(W)D.push(`object-position: ${W}`);if(Z.placeholder&&G)D.push("opacity: 0; transition: opacity 300ms ease-out");if(B)D.push(B);if(D.length>0)N.push(`style="${D.join("; ")}"`);let E=[];if(_)E.push(_);if(Z.placeholder)E.push("stx-img-blur");if(E.length>0)N.push(`class="${E.join(" ")}"`);if(G&&!K)N.push("data-stx-lazy");for(let[y,d]of Object.entries(H))N.push(`data-${y}="${i0(d)}"`);let I;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let y=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;I=`<div id="${j}" class="stx-img-placeholder" style="${y}">
|
|
1171
1171
|
<picture>
|
|
1172
1172
|
${w.join(`
|
|
1173
1173
|
`)}
|
|
@@ -1181,8 +1181,8 @@ ${w.join(`
|
|
|
1181
1181
|
`):void 0,script:S}}async function EZ($,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 V6($,X,Y)}var NZ=!1,O6=80,Q4="async",G4="lazy",TZ=!1;var IZ=P(()=>{J6();KZ()});function iz(){return H0({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}=nz($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||g1,formats:G.formats||W5,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},z=Y.__isDev||!1,W=await r5(K,{isDev:z}),U=W.html;if(W.preloadLink)U=W.preloadLink+`
|
|
1182
1182
|
`+U;if(W.css)U+=`
|
|
1183
1183
|
<style>${W.css}</style>`;if(W.script)U+=`
|
|
1184
|
-
<script>${W.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function nz($,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=oz(X),Q=w6(J[0],Y)||"",G=w6(J[1],Y)||"",K={};if(J[2]){let z=w6(J[2],Y);if(typeof z==="object"&&z!==null)K=z;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function oz($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],W=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&W!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function w6($,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 kZ;var SZ=P(()=>{i7();IZ();J6();kZ=iz()});class z4{config;constructor($={}){this.config={...sz,...$}}async get($,Z){return t$($,Z,"video",this.config)}async set($,Z,Y){return e$($,Z,Y,"video",this.config)}async clear(){return $4("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function A6($){if(!K4)K4=new z4($);else if($)K4.updateConfig($);return K4}async function W4($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return A6(X).get($,Z)}async function U4($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return A6(J).set($,Z,Y)}async function bZ(){return A6().clear()}var sz,K4=null;var R6=P(()=>{U6();sz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as N6,basename as T6,extname as M6,join as q4}from"path";import{mkdir as D6}from"fs/promises";async function E6(){try{return await import("ts-videos")}catch{return null}}async function _4($,Z,Y,X){let J=await E6();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=N6($);if(!await T0(Q))return null;await D6(Y,{recursive:!0});let G=await
|
|
1185
|
-
`)}async function O4($,Z,Y,X,J){let Q=await gZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=yZ($);if(!await T0(G))return null;let K=await
|
|
1184
|
+
<script>${W.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function nz($,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=oz(X),Q=w6(J[0],Y)||"",G=w6(J[1],Y)||"",K={};if(J[2]){let z=w6(J[2],Y);if(typeof z==="object"&&z!==null)K=z;else if(typeof J[2]==="string")try{K=JSON.parse(J[2])}catch{}}return{src:Q,alt:G,options:K}}function oz($){let Z=[],Y="",X=!1,J="",Q=0,G=0;for(let K=0;K<$.length;K++){let z=$[K],W=K>0?$[K-1]:"";if((z==='"'||z==="'"||z==="`")&&W!=="\\"){if(!X)X=!0,J=z;else if(z===J)X=!1,J="";else Y+=z;continue}if(!X){if(z==="{")Q++;if(z==="}")Q--;if(z==="[")G++;if(z==="]")G--;if(z===","&&Q===0&&G===0){Z.push(Y.trim()),Y="";continue}}Y+=z}if(Y.trim())Z.push(Y.trim());return Z}function w6($,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 kZ;var SZ=P(()=>{i7();IZ();J6();kZ=iz()});class z4{config;constructor($={}){this.config={...sz,...$}}async get($,Z){return t$($,Z,"video",this.config)}async set($,Z,Y){return e$($,Z,Y,"video",this.config)}async clear(){return $4("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function A6($){if(!K4)K4=new z4($);else if($)K4.updateConfig($);return K4}async function W4($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return A6(X).get($,Z)}async function U4($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return A6(J).set($,Z,Y)}async function bZ(){return A6().clear()}var sz,K4=null;var R6=P(()=>{U6();sz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as N6,basename as T6,extname as M6,join as q4}from"path";import{mkdir as D6}from"fs/promises";async function E6(){try{return await import("ts-videos")}catch{return null}}async function _4($,Z,Y,X){let J=await E6();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=N6($);if(!await T0(Q))return null;await D6(Y,{recursive:!0});let G=await I0(Q),K=T6($,M6($)),z=Z.format||"webp",W=Z.timestamp||0,U=`${K}-poster-${G}.${z}`,q=q4(Y,U),_=await J.extractThumbnails(Q,{timestamps:[W],width:Z.width||1280,height:Z.height,format:z,quality:Z.quality||85,outputDir:Y,outputPattern:U.replace(`.${z}`,"")});if(_&&_.length>0){let B=_[0];return{path:q,url:`${X}/${U}`,width:B.width||Z.width||1280,height:B.height||720,timestamp:W,size:B.size||0}}return null}catch(Q){return console.warn(`[stx-media] Failed to generate poster: ${Q}`),null}}async function B4($,Z,Y,X){let J=await E6();if(!J)return[];try{let Q=N6($);if(!await T0(Q))return[];await D6(Y,{recursive:!0});let G=await I0(Q),K=T6($,M6($)),z=Z.format||"webp",q=(await new J.Input(Q).getInfo()).duration||60,_=Z.count||10,B=Z.interval||q/_,j=[];for(let L=0;L<_&&L*B<q;L++)j.push(L*B);let H=await J.extractThumbnails(Q,{timestamps:j,width:Z.width||320,format:z,quality:Z.quality||80,outputDir:Y,outputPattern:`${K}-thumb-${G}`});if(H&&H.length>0)return H.map((L,F)=>({path:L.path||q4(Y,`${K}-thumb-${G}-${F}.${z}`),url:`${X}/${K}-thumb-${G}-${F}.${z}`,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 PZ($,Z,Y,X){let J=await E6();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=N6($);if(!await T0(Q))return null;await D6(Y,{recursive:!0});let G=await I0(Q),K=T6($,M6($)),U=(await new J.Input(Q).getInfo()).duration||60,q=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/q),O=`${K}-sprite-${G}.${H}`,V=q4(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:q4(Y,".temp")});if(!w||w.length===0)return null;try{let R=await import("ts-images"),N=q*B,M=F*j,T=await R.createSprite({images:w.map((D)=>D.path),columns:q,padding:0,outputPath:V,format:H,quality:Z.quality||70});return{url:`${X}/${O}`,path:V,columns:q,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 I6=P(()=>{h1()});import{resolve as yZ,basename as vZ,extname as xZ,join as d1}from"path";import{mkdir as j4,writeFile as fZ}from"fs/promises";async function gZ(){try{return await import("ts-videos")}catch{return null}}async function H4($,Z,Y,X,J){let Q=await gZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=yZ($);if(!await T0(G))return null;let K=await I0(G),z=vZ($,xZ($)),W=d1(Y,`${z}-${K}-hls`);await j4(W,{recursive:!0});let U=Z.length>0?Z:hZ,q=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],L=0;for(let V of U){let A=d1(W,V.label);await j4(A,{recursive:!0});let w=`${V.label}.m3u8`,R=d1(A,w);try{let N=await Q.generateHLS(G,{outputDir:A,segmentDuration:q,width:V.width,height:V.height,videoBitrate:V.bitrate,audioBitrate:V.audioBitrate,playlistName:V.label});if(N)H.push({quality:V,url:`${X}/${z}-${K}-hls/${V.label}/${w}`,path:R}),L+=N.segmentCount||Math.ceil(j/q)}catch(N){console.warn(`[stx-media] Failed to generate HLS for ${V.label}: ${N}`)}}if(H.length===0)return null;let F=d1(W,"master.m3u8"),O=rz(H,X,z,K);return await fZ(F,O),{manifestUrl:`${X}/${z}-${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 rz($,Z,Y,X){let J=["#EXTM3U","#EXT-X-VERSION:3"];for(let Q of $){let{quality:G}=Q,K=G.bitrate+(G.audioBitrate||128000),z=`${G.width}x${G.height||Math.round(G.width*9/16)}`;J.push(`#EXT-X-STREAM-INF:BANDWIDTH=${K},RESOLUTION=${z},NAME="${G.label}"`,`${G.label}/${G.label}.m3u8`)}return J.join(`
|
|
1185
|
+
`)}async function O4($,Z,Y,X,J){let Q=await gZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=yZ($);if(!await T0(G))return null;let K=await I0(G),z=vZ($,xZ($)),W=d1(Y,`${z}-${K}-dash`);await j4(W,{recursive:!0});let U=Z.length>0?Z:hZ,q=J?.segmentDuration||4,_=J?.minBufferTime||2,H=(await new Q.Input(G).getInfo()).duration||0,L=[],F=[];for(let w of U){let R=d1(W,w.label);await j4(R,{recursive:!0});try{if(await Q.generateDASH(G,{outputDir:R,segmentDuration:q,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}/${z}-${K}-dash/${w.label}/video`}),w.audioBitrate)F.push({bandwidth:w.audioBitrate,url:`${X}/${z}-${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=d1(W,"manifest.mpd"),V=az(L,F,H,q,_);await fZ(O,V);let A=[{type:"video",representations:L}];if(F.length>0)A.push({type:"audio",representations:F});return{manifestUrl:`${X}/${z}-${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 az($,Z,Y,X,J){let Q=CZ(Y),G=CZ(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 CZ($){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 hZ;var k6=P(()=>{h1();hZ=[{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 dZ,basename as tz,extname as ez,join as $W}from"path";import{mkdir as ZW}from"fs/promises";async function uZ(){try{return await import("ts-videos")}catch{return null}}function YW($){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 XW($){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 S6($){let Z=await uZ();if(!Z)return null;try{let Y=dZ($),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 mZ($,Z,Y,X){let J=await uZ();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await W4($,Z,Y);if(Q)return Q;try{let G=dZ($);if(!await T0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",z=Y.baseUrl||"/videos";await ZW(K,{recursive:!0});let W=await
|
|
1211
|
+
</MPD>`,K}function CZ($){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 hZ;var k6=P(()=>{h1();hZ=[{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 dZ,basename as tz,extname as ez,join as $W}from"path";import{mkdir as ZW}from"fs/promises";async function uZ(){try{return await import("ts-videos")}catch{return null}}function YW($){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 XW($){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 S6($){let Z=await uZ();if(!Z)return null;try{let Y=dZ($),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 mZ($,Z,Y,X){let J=await uZ();if(!J)return console.warn("[stx-media] ts-videos not installed, skipping processing"),{src:$,processed:!1};let Q=await W4($,Z,Y);if(Q)return Q;try{let G=dZ($);if(!await T0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",z=Y.baseUrl||"/videos";await ZW(K,{recursive:!0});let W=await I0(G),U=tz($,ez($)),q={src:$,processed:!0,hash:W};X?.({percentage:5,stage:"analyzing"}),q.metadata=await S6(G)||void 0;let _={};if(Z.quality)_.bitrate=YW(Z.quality);if(Z.platform)Object.assign(_,XW(Z.platform));if(Z.transcode)Object.assign(_,Z.transcode);if(Object.keys(_).length>0||Z.process){X?.({percentage:10,stage:"transcoding"});let B=`${U}-${W}.mp4`,j=$W(K,B);try{let H=await JW(G,j,_,J,(L)=>X?.({percentage:10+L*0.5,stage:"transcoding"}));if(H)q.transcoded={path:j,url:`${z}/${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){q.errors=q.errors||[],q.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 _4(G,B,K,z);if(j)q.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let B=await B4(G,Y.thumbnails,K,z);if(B.length>0)q.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 H4(G,B.qualities||Y.streaming?.defaultQualities||[],K,z);if(j)q.streaming={...q.streaming,hls:j}}if(B.format==="dash"){let j=await O4(G,B.qualities||Y.streaming?.defaultQualities||[],K,z);if(j)q.streaming={...q.streaming,dash:j}}}if(Z.spriteSheet)X?.({percentage:90,stage:"generating-sprite-sheet"});return X?.({percentage:100,stage:"complete"}),await U4($,Z,q,Y),q}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function JW($,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 lZ=P(()=>{h1();R6();I6();k6()});var pZ={};u(pZ,{setCachedVideoResult:()=>U4,processVideo:()=>mZ,getCachedVideoResult:()=>W4,generateThumbnails:()=>B4,generateSpriteSheet:()=>PZ,generatePoster:()=>_4,generateHLSManifest:()=>H4,generateDASHManifest:()=>O4,clearVideoCache:()=>bZ,analyzeVideo:()=>S6,VideoProcessorCache:()=>z4});var cZ=P(()=>{lZ();I6();k6();R6()});async function nZ(){try{return await Promise.resolve().then(() => (cZ(),pZ))}catch($){if(!iZ)console.warn("[stx-media] Video processor not available, some features disabled:",$),iZ=!0;return null}}async function L4($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return UW(X,Y)}if(Y.processedResult?.processed)return aZ($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await qW(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:z,controls:W=oZ,autoplay:U=!1,muted:q=!1,loop:_=!1,preload:B=sZ,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,D=$.id||`stx-video-${Math.random().toString(36).slice(2,8)}`;if(L==="ts-video")return KW($,Z);if(F&&F!=="video")return GW(Q||"",F,$);let E=G.length>0?G:Q?[{src:Q,type:rZ(Q)}]:[],I=[`id="${D}"`];if(W)I.push("controls");if(U)I.push("autoplay");if(q)I.push("muted");if(_)I.push("loop");if(j)I.push("playsinline");if(w)I.push("disablepictureinpicture");if(R)I.push("disableremoteplayback");if(A)I.push(`crossorigin="${A}"`);if(H){if(I.push(`data-preload="${B}"`),I.push('preload="none"'),N)I.push(`data-poster="${F0(N)}"`);I.push("data-stx-lazy")}else if(I.push(`preload="${B}"`),N)I.push(`poster="${F0(N)}"`);if(O)I.push(`width="${O}"`);if(V)I.push(`height="${V}"`);if(M)I.push(`class="${F0(M)}"`);if(T)I.push(`style="${F0(T)}"`);let k=E.map((y)=>{return` <source ${H?`data-src="${F0(y.src)}"`:`src="${F0(y.src)}"`} type="${y.type}"${y.media?` media="${y.media}"`:""} />`}).join(`
|
|
1212
1212
|
`),S=`<video ${I.join(" ")}>
|
|
1213
1213
|
${k}
|
|
1214
1214
|
Your browser does not support the video tag.
|
|
@@ -2317,7 +2317,7 @@ else { this.removeAttribute('${I}'); }`:`this.setAttribute('${I}', ${D.type==="o
|
|
|
2317
2317
|
}
|
|
2318
2318
|
else {
|
|
2319
2319
|
this.removeAttribute('${I}');
|
|
2320
|
-
}`:"",b=D.observer?`this.${D.observer}(value, oldValue);`:"",
|
|
2320
|
+
}`:"",b=D.observer?`this.${D.observer}(value, oldValue);`:"",y=D.render!==!1?"this._scheduleRender();":"";return`
|
|
2321
2321
|
get ${T}(): ${E} {
|
|
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
|
${b}
|
|
2330
|
-
${
|
|
2330
|
+
${y}
|
|
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 wY($,Z,Y,X){if(Z.length<1)return r("WebComponent","@webcomponent directive requires at least the tag name parameter",p.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[L1.join(L1.dirname(X),G,`${J}.stx`),L1.join(process.cwd(),G,`${J}.stx`),L1.join(L1.dirname(X),`${J}.stx`)],z=null;for(let q of K)if(await i(q)){z=await Bun.file(q).text();break}if(!z)return r("WebComponent",`Component file not found: ${J}.stx`,p.FILE_NOT_FOUND);let W=eW(z,J);return`<script type="module">
|
|
2935
2935
|
${$U(W)}
|
|
2936
|
-
</script>`}var p6;var AY=P(()=>{U1();L0();p6={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var RY={};u(RY,{timingPlugin:()=>QU,pluginManager:()=>ZU,definePlugin:()=>E4,debugPlugin:()=>JU,createVariablesPlugin:()=>GU,createFilterPlugin:()=>XU,createDirectivePlugin:()=>YU,PluginManager:()=>i6});function E4($){return $}class i6{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 YU($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function XU($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function GU($){return E4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var ZU,JU,QU;var NY=P(()=>{ZU=new i6;JU=E4({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)}}),QU=E4({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 MY={};u(MY,{validateConfig:()=>UU,loadStxConfig:()=>k4,defineStxConfig:()=>WU,defaultConfig:()=>l1,config:()=>o6});import n6 from"fs";import I0 from"path";import{loadConfigWithResult as KU}from"bunfig";function zU($,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(n6.existsSync(X)&&n6.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=I0.join(process.cwd(),"resources","views","pages");if(n6.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function k4($){if(!$){if(O5)return O5;if(I4)return I4}let Z=$?I0.resolve($):process.cwd(),Y=TY.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await KU({name:"stx",alias:"ui",cwd:Z,defaultConfig:l1,verbose:!1})).config,G=zU(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(() => (NY(),RY)),z=[],W=[];for(let U of Q.plugins){let q=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(q),j=I0.dirname(J0.resolve(q))}catch{let L=I0.resolve(process.cwd(),q);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);z.push(L)}if(H.pages){let L=I0.resolve(j,H.pages),F=_.path||"/";W.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||q}`)}catch(B){console.warn(`[stx] Failed to load plugin ${q}:`,B.message)}}Q._pluginComponentDirs=z,Q._pluginPageDirs=W}return Q})();if(TY.set(Z,X),!$)I4=X,X.then((J)=>{O5=J}).catch(()=>{});return X}function WU($){return $}function UU($){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 l1,O5=null,TY,I4=null,o6;var e5=P(()=>{d$();p7();r7();a7();$6();SZ();P6();ZY();l6();AY();l1={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:e7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:wY,hasEndTag:!1,description:"Include a web component in the template"},g$,h$,u6,m6,d7,m7,l7,u7,o8,a8,kZ,b6,...C6],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}};TY=new Map;o6=new Proxy(l1,{get($,Z){if(O5&&Z in O5)return O5[Z];if(!I4)k4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var VU={};u(VU,{resetCssCache:()=>HU,resetCrosswindCache:()=>OU,rebuildCrosswindCSS:()=>LU,loadCrosswindConfig:()=>e6,loadCrosswind:()=>t6,injectCrosswindCSS:()=>$3,getCachedCSS:()=>FU,generateCrosswindCSS:()=>kY,extractClassNames:()=>IY,buildCrosswindCSS:()=>EY});import b4 from"fs";import Y0 from"path";function a6($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function s6($,Z){if(q1.has($))q1.delete($);else if(q1.size>=qU)q1.delete(q1.keys().next().value);q1.set($,Z)}async function _U($){if(!F1)return null;try{let Z=Bun.file(Y0.join(F1,`cw-${a6($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function BU($,Z){if(!F1)return;try{if(!b4.existsSync(F1))b4.mkdirSync(F1,{recursive:!0});await Bun.write(Y0.join(F1,`cw-${a6($)}.css`),Z)}catch{}}async function DY($){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 jU(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==Y0.dirname(Y))$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=Y0.dirname(Y);if(Z){let X=[Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function t6(){if(r6)return F5;r6=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await DY(Y);if(X){if(F5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return F5}}let Z=jU();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await DY(Y);if(X){if(F5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return F5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${K0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${K0.reset}`),console.warn(`${K0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${K0.reset}`),null}}function HU(){q1.clear()}function OU(){F5=null,r6=!1,o0=null,$$="",q1.clear(),S4=null}async function e6($){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=Y0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${K0.yellow}[Crosswind]${K0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function EY($){if(L5)return $$;L5=!0;try{let Z=await t6();if(!Z||!Z.build)return L5=!1,"";if(!o0)o0=await e6($);if(!o0)return L5=!1,"";let Y=Z.defaultConfig?.theme||{},X=o0.theme||{},J={...Z.defaultConfig,...o0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if($$=G.css,console.log(`${K0.cyan}[Crosswind]${K0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let z=Y0.isAbsolute(J.output)?J.output:Y0.join($,J.output),W=Y0.dirname(z);if(!b4.existsSync(W))b4.mkdirSync(W,{recursive:!0});await Bun.write(z,G.css)}return L5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),L5=!1,$$}}async function LU($){o0=null,await EY($)}function FU(){return $$}function IY($){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 z of K.slice(1,-1).split(/\s+/))if(z.trim())Z.add(z.trim())}Q=J.exec($)}return Z}async function kY($,Z){try{let Y=await t6();if(!Y)return"";let X=IY($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!F1)F1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${S4||"default"}::${Q}`,K=q1.get(G);if(K!==void 0)return s6(G,K),K;let z=await _U(G);if(z!==null)return s6(G,z),z;if(!o0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (e5(),MY)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=Y0.isAbsolute(N.css)?N.css:Y0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${K0.green}[Crosswind]${K0.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=Y0.isAbsolute(N.css.config)?N.css.config:Y0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${K0.green}[Crosswind]${K0.reset} Using inline CSS config from stx.config.ts`)}}catch{}o0=w||await e6(J);try{S4=a6(JSON.stringify(o0??{}))}catch{S4="unhashable"}}let W=Y.defaultConfig||Y.config,U=o0||{},q=W.theme||{},B=(U.theme||{}).extend||{},j={...q};if(Object.keys(B).length>0)j.extend=B;let H=[...W.safelist||[],...U.safelist||[]],L={...W,...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 D of N){let E=D.startsWith("dark:"),S=`.${(E?D.slice(5):D).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let b=0;b<A.length;b++){let
|
|
2936
|
+
</script>`}var p6;var AY=P(()=>{U1();L0();p6={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var RY={};u(RY,{timingPlugin:()=>QU,pluginManager:()=>ZU,definePlugin:()=>E4,debugPlugin:()=>JU,createVariablesPlugin:()=>GU,createFilterPlugin:()=>XU,createDirectivePlugin:()=>YU,PluginManager:()=>i6});function E4($){return $}class i6{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 YU($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function XU($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function GU($){return E4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var ZU,JU,QU;var NY=P(()=>{ZU=new i6;JU=E4({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)}}),QU=E4({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 MY={};u(MY,{validateConfig:()=>UU,loadStxConfig:()=>k4,defineStxConfig:()=>WU,defaultConfig:()=>l1,config:()=>o6});import n6 from"fs";import k0 from"path";import{loadConfigWithResult as KU}from"bunfig";function zU($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=k0.join(process.cwd(),"resources","views"),J=k0.join(process.cwd(),"resources","layouts");if(n6.existsSync(X)&&n6.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=k0.join(process.cwd(),"resources","views","pages");if(n6.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function k4($){if(!$){if(O5)return O5;if(I4)return I4}let Z=$?k0.resolve($):process.cwd(),Y=TY.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await KU({name:"stx",alias:"ui",cwd:Z,defaultConfig:l1,verbose:!1})).config,G=zU(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!k0.isAbsolute(Q.partialsDir))Q.partialsDir=k0.join(K,Q.partialsDir);if(Q.componentsDir&&!k0.isAbsolute(Q.componentsDir))Q.componentsDir=k0.join(K,Q.componentsDir);if(Q.layoutsDir&&!k0.isAbsolute(Q.layoutsDir))Q.layoutsDir=k0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (NY(),RY)),z=[],W=[];for(let U of Q.plugins){let q=typeof U==="string"?U:U[0],_=typeof U==="string"?{}:U[1]||{};try{let B,j;try{B=await import(q),j=k0.dirname(J0.resolve(q))}catch{let L=k0.resolve(process.cwd(),q);B=await import(L),j=k0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=k0.resolve(j,H.components);z.push(L)}if(H.pages){let L=k0.resolve(j,H.pages),F=_.path||"/";W.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||q}`)}catch(B){console.warn(`[stx] Failed to load plugin ${q}:`,B.message)}}Q._pluginComponentDirs=z,Q._pluginPageDirs=W}return Q})();if(TY.set(Z,X),!$)I4=X,X.then((J)=>{O5=J}).catch(()=>{});return X}function WU($){return $}function UU($){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 l1,O5=null,TY,I4=null,o6;var e5=P(()=>{d$();p7();r7();a7();$6();SZ();P6();ZY();l6();AY();l1={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:e7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:wY,hasEndTag:!1,description:"Include a web component in the template"},g$,h$,u6,m6,d7,m7,l7,u7,o8,a8,kZ,b6,...C6],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}};TY=new Map;o6=new Proxy(l1,{get($,Z){if(O5&&Z in O5)return O5[Z];if(!I4)k4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var VU={};u(VU,{resetCssCache:()=>HU,resetCrosswindCache:()=>OU,rebuildCrosswindCSS:()=>LU,loadCrosswindConfig:()=>e6,loadCrosswind:()=>t6,injectCrosswindCSS:()=>$3,getCachedCSS:()=>FU,generateCrosswindCSS:()=>kY,extractClassNames:()=>IY,buildCrosswindCSS:()=>EY});import b4 from"fs";import Y0 from"path";function a6($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function s6($,Z){if(q1.has($))q1.delete($);else if(q1.size>=qU)q1.delete(q1.keys().next().value);q1.set($,Z)}async function _U($){if(!F1)return null;try{let Z=Bun.file(Y0.join(F1,`cw-${a6($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function BU($,Z){if(!F1)return;try{if(!b4.existsSync(F1))b4.mkdirSync(F1,{recursive:!0});await Bun.write(Y0.join(F1,`cw-${a6($)}.css`),Z)}catch{}}async function DY($){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 jU(){let $=[],Z=process.env.HOME||process.env.USERPROFILE||"",Y=process.cwd();while(Y!==Y0.dirname(Y))$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"node_modules","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@cwcss","crosswind","src","index.ts")),$.push(Y0.join(Y,"node_modules","@stacksjs","crosswind","dist","index.js")),$.push(Y0.join(Y,"pantry","@stacksjs","crosswind","dist","index.js")),Y=Y0.dirname(Y);if(Z){let X=[Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","dist","index.js"),Y0.join(Z,"repos","stacks-org","crosswind","packages","crosswind","src","index.ts"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@cwcss","crosswind","dist","index.js"),Y0.join(Z,"Code","Tools","stx","packages","stx","node_modules","@stacksjs","crosswind","dist","index.js")];$.push(...X)}return $.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","dist","index.js")),$.push(Y0.join(process.cwd(),"..","crosswind","packages","crosswind","src","index.ts")),$}async function t6(){if(r6)return F5;r6=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await DY(Y);if(X){if(F5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return F5}}let Z=jU();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await DY(Y);if(X){if(F5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return F5}}throw Error("Crosswind CSSGenerator not found in any location")}catch{return console.warn(`${K0.yellow}[Crosswind] CSS engine not available, Tailwind styles will not be generated${K0.reset}`),console.warn(`${K0.yellow}Run 'bun add @stacksjs/crosswind' to enable CSS generation${K0.reset}`),null}}function HU(){q1.clear()}function OU(){F5=null,r6=!1,o0=null,$$="",q1.clear(),S4=null}async function e6($){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=Y0.relative($,Y.path);if(!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} Loaded config from ${X||Y.path}`);return Y.config}catch(Z){if(Z instanceof Error&&Z.name==="ConfigNotFoundError")return null;return console.warn(`${K0.yellow}[Crosswind]${K0.reset} Failed to load crosswind config:`,Z instanceof Error?Z.message:Z),null}}async function EY($){if(L5)return $$;L5=!0;try{let Z=await t6();if(!Z||!Z.build)return L5=!1,"";if(!o0)o0=await e6($);if(!o0)return L5=!1,"";let Y=Z.defaultConfig?.theme||{},X=o0.theme||{},J={...Z.defaultConfig,...o0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if($$=G.css,console.log(`${K0.cyan}[Crosswind]${K0.reset} Built ${G.classes.size} classes in ${K.toFixed(1)}ms`),J.output){let z=Y0.isAbsolute(J.output)?J.output:Y0.join($,J.output),W=Y0.dirname(z);if(!b4.existsSync(W))b4.mkdirSync(W,{recursive:!0});await Bun.write(z,G.css)}return L5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),L5=!1,$$}}async function LU($){o0=null,await EY($)}function FU(){return $$}function IY($){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 z of K.slice(1,-1).split(/\s+/))if(z.trim())Z.add(z.trim())}Q=J.exec($)}return Z}async function kY($,Z){try{let Y=await t6();if(!Y)return"";let X=IY($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!F1)F1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${S4||"default"}::${Q}`,K=q1.get(G);if(K!==void 0)return s6(G,K),K;let z=await _U(G);if(z!==null)return s6(G,z),z;if(!o0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (e5(),MY)),N=await R(J);if(N.css)if(typeof N.css==="string"){let M=Y0.isAbsolute(N.css)?N.css:Y0.resolve(J,N.css);if(await Bun.file(M).exists()){let T=await import(M);w=T.default||T,console.log(`${K0.green}[Crosswind]${K0.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=Y0.isAbsolute(N.css.config)?N.css.config:Y0.resolve(J,N.css.config);if(await Bun.file(M).exists()){let T=await import(M);w={...T.default||T,...w}}}console.log(`${K0.green}[Crosswind]${K0.reset} Using inline CSS config from stx.config.ts`)}}catch{}o0=w||await e6(J);try{S4=a6(JSON.stringify(o0??{}))}catch{S4="unhashable"}}let W=Y.defaultConfig||Y.config,U=o0||{},q=W.theme||{},B=(U.theme||{}).extend||{},j={...q};if(Object.keys(B).length>0)j.extend=B;let H=[...W.safelist||[],...U.safelist||[]],L={...W,...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 D of N){let E=D.startsWith("dark:"),S=`.${(E?D.slice(5):D).replace(/\//g,"\\/").replace(/:/g,"\\:").replace(/\./g,"\\.").replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/%/g,"\\%")}`;for(let b=0;b<A.length;b++){let y=A[b].trim();if(y===`${S} {`||y.startsWith(`${S} {`)){let d=b,f="";while(d<A.length){if(f+=A[d],A[d].includes("}"))break;d++}let m=f.match(/\{([^}]+)\}/);if(m)if(E)T.push(m[1].trim());else M.push(m[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 s6(G,O),BU(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function $3($,Z){let Y=await kY($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
|
|
2940
2940
|
${Y}
|
|
@@ -3770,7 +3770,7 @@ ${Y}
|
|
|
3770
3770
|
</script>`}function sY($,Z,Y){if(oY=0,!nU($))return $;let X=dU($);if(X.length===0)return $;let J=iU($,X),Q=cU(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 iU($,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*["']${y4(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*["']${y4(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*"${y4(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*'${y4(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 nU($){return/x-data\s*=\s*["']/.test($)}var oY=0,hU=0;var rY=P(()=>{Y1()});import oU from"fs";import J3 from"path";import{createHighlighter as sU}from"ts-syntax-highlighter";async function rU($,Z={}){try{if(!await i($))throw Error(`Markdown file not found: ${$}`);let X=(await oU.promises.stat($)).mtime.getTime();if(Z.cache&&Q3.has($)){let q=Q3.get($);if(q.updatedAt>=X)return{content:q.content,data:q.data}}let J=await Bun.file($).text(),{data:Q,content:G}=$Z(J),K=Z.markdown||o6.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},W=o5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)W=await aU(W,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let U={content:W,data:Q||{}};if(Z.cache)Q3.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 aU($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!v4)try{v4=await sU({theme:Z||"github-dark",cache:!0})}catch(K){return console.error("Failed to initialize ts-syntax-highlighter:",K),$}let J=async(K,z,W,U)=>{let q=U.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'"),_=W||(Y?"text":"");if(!_)return K;try{if(!v4.getSupportedLanguages().includes(_))return K;return(await v4.highlight(q,_,{theme:Z})).html}catch(B){console.error(`Error highlighting code block with language ${W}:`,B)}return K},Q=$,G=$.matchAll(X);for(let K of G){let[z,W,U,q]=K,_=await J(z,W,U,q);Q=Q.replace(z,_)}return Q}async function aY($,Z,Y="",X={}){return await tU($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,z,W)=>{try{let U=K;if(!J3.isAbsolute(K))U=J3.resolve(J3.dirname(Y),K);let q={};if(z)try{try{q=JSON.parse(z)}catch{if(X.debug)console.warn("Using safer alternative for parsing JS object literal");let O=z.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);q[w]=R}}}}catch(F){if(X.debug)console.error("Error parsing context in @markdown-file directive:",F)}let{content:_,data:B}=await rU(U,X),j={...Z,...B,...q},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 q=U instanceof Error?U.message:String(U);return Q0("Markdown File",`Error including markdown file: ${q}`,Y,$,W,G)}})}async function tU($,Z,Y){let X=[],J;while((J=Z.exec($))!==null){let K=J[0],z=J.index,W=J;X.push(Y(...W).then((U)=>({match:K,replacement:U,index:z})))}let Q=await Promise.all(X);Q.sort((K,z)=>z.index-K.index);let G=$;for(let{match:K,replacement:z}of Q)G=G.replace(K,()=>z);return G}var Q3,v4=null;var tY=P(()=>{e5();L0();Q3=new Map});function w1($,Z){try{let Y=$.trim();if($0(Y))return Z0(Y,Object.keys(Z))(...Object.values(Z));else return e(Y,Z)}catch{return!1}}var eY=P(()=>{A0()});class x4{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 V0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,z=!1;while(Q<$.length){let W=$[Q];if(G&&z){z=!1,Q++;continue}if(G&&W==="\\"){z=!0,Q++;continue}if(z=!1,(W==='"'||W==="'"||W==="`")&&!G){G=W,Q++;continue}if(W===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&W==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&W==="}"){K--,Q++;continue}if(W==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(W===Z)J++;else if(W===Y){if(J--,J===0)return Q}Q++}return-1}function $2($,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 G3($){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 A1($,Z){let Y=eU($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function eU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=V0($,"(",")",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 z=G.exec($),W=K.exec($),U=z?z.index:1/0,q=W?W.index:1/0;if(U<q)J++,Q=U+z[0].length;else if(q<1/0){if(J--,J===0)return q;Q=q+W[0].length}else break}return-1}function Z2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=A1($,X);if(!J)return null;let Q=J.endPos,G=p1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],W=0,U="if",q=J.expression,_=0,B=0;while(W<K.length){let j=K.indexOf("@",W);if(j===-1)break;W=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,W++;continue}if(/^@endif(?![a-z])/.test(H)){B--,W+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){z.push({type:U,condition:q,content:K.substring(_,W),start:Q+_,end:Q+W});let F=W+L[0].length,O=A1(K,F);if(!O){W++;continue}U="elseif",q=O.expression,W=O.endPos,_=W;continue}else if(/^@else(?![a-z])/.test(H)){z.push({type:U,condition:q,content:K.substring(_,W),start:Q+_,end:Q+W}),U="else",q=void 0,W+=5,_=W;continue}}W++}return z.push({type:U,condition:q,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:z,start:Z,end:G+6}}function Z$($){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=Z2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function f4($,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,z=K+Q[0].length-1,W=V0($,"(",")",z);if(W===-1){Q=J.exec($);continue}let U=$.slice(z+1,W),q=W+1,_=p1($,Z,Y,q);if(_===-1){Q=J.exec($);continue}let B=$.slice(q,_),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 K3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=A1($,X);if(!J)return null;let Q=J.endPos,G=p1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],W=0,U=null,q=0;while(W<K.length){let _=K.slice(W),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(q++,U)U.content+=B[0];W+=B[0].length;continue}if(j){if(q--,U)U.content+=j[0];W+=j[0].length;continue}if(q>0){if(U)U.content+=K[W];W++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)z.push(U);let O=W+H[0].length,V=A1(K,O);if(!V){W++;continue}U={type:"case",value:V.expression,content:""},W=V.endPos}else if(L&&_.startsWith("@default")){if(U)z.push(U);U={type:"default",content:""},W+=L[0].length}else if(F&&_.startsWith("@break"))W+=F[0].length;else{if(U)U.content+=K[W];W++}}if(U)z.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:z,start:Z,end:G+10}}var Y2=()=>{};function $q($){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)==="{{{"?"{{{":"{!!":"{{",z=Q?K==="{{{"?"}}}":"!!}":"}}",W=G+K.length,U=Zq($,W,z);if(U===-1){Y=G+1;continue}let q=$.slice(W,U).trim(),_=U+z.length;Z.push({fullMatch:$.slice(G,_),expression:q,start:G,end:_,isRaw:Q}),Y=_}return Z}function Zq($,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 Yq($){let Z=G3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Xq(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Xq($){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=V0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=Q2(G);return{name:X,args:K}}function Q2($){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 Jq($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=V0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function Qq($){let Z=[],X=new x4($).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 z=K.value;if(J++,J>=X.length)break;let W=X[J];if(W.type==="IDENTIFIER"){let U=W.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let q=J<X.length?X[J].start:$.length,_=X2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(q,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(W.type==="PUNCTUATION"&&(W.value==="{"||W.value==="[")){let U=W.start,q=W.value==="{"?"}":"]",_=V0($,W.value,q,U);if(_!==-1){let B=$.slice(U,_+1);if(J=J2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=X2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${z} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let z=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let W=X[J];if(W.type==="IDENTIFIER"){let U=W.value;J++;let q=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){q=X[J].start;break}J++}if(q!==-1){let _=V0($,"{","}",q);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=J2(X,_+1)}}}else J++}return Z}function X2($,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 J2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var G2=()=>{};var g4=P(()=>{Y2();G2()});function Gq($,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=K3(X,G);if(!K)break;try{let z;if($0(K.expression))z=Z0(K.expression,Object.keys(Z))(...Object.values(Z));else z=e(K.expression,Z);let W="",U=!1;for(let q of K.cases)if(q.type==="default"){if(!U)W=q.content.trim()}else try{let _;if(q.value&&$0(q.value))_=Z0(q.value,Object.keys(Z))(...Object.values(Z));else if(q.value)_=e(q.value,Z);if(z===_){W=q.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+W+X.substring(K.end),J=!0}catch(z){let W=z instanceof Error?z.message:String(z),U=r("Switch",`Error evaluating @switch expression: ${W}`,p.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function c1($,Z,Y){let X=$;X=Gq(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,z=A1(X,K+7);if(!z)break;let W=z.endPos,U=p1(X,"unless","endunless",W);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 q=X.slice(W,U),_=z.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(q))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(q))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(q))!==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=q.slice(0,B),L=q.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${q}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=W3(X,Z,Y),X=U3(X,Z,Y),X=z3(X,Z);let J=()=>{let Q=Z$(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let z="",W=!1;for(let U of K.branches){if(W)break;if(U.type==="else")z=U.content,W=!0;else try{let q;if(U.condition&&$0(U.condition))q=Z0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)q=e(U.condition,Z);if(q)z=U.content,W=!0}catch(q){z=r(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${q instanceof Error?q.message:String(q)}`,p.EVALUATION_ERROR),W=!0}}X=X.substring(0,K.start)+z+X.substring(K.end)}catch(z){let W=z instanceof Error?z.message:String(z),U=r("If",`Error processing @if block: ${W}`,p.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 K2($){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 z3($,Z){let Y=$;function X(K,z,W,U){let q=1,_=U,B=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${W}(?![a-z])`,"g");while(_<K.length&&q>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)q++,_=F+H[0].length;else if(O<1/0){if(q--,q===0)return O;_=O+L[0].length}else break}return-1}function J(K,z,W){let U=0,q=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${W}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=q.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 z=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let W=z.index,U,q,_=Y.slice(W+5),B=K2(_);if(B)U=B.value,q=W+5+B.consumed;else q=W+5;let j=X(Y,"auth","endauth",q);if(j===-1){console.warn(`[stx] @auth directive at position ${W} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(q,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?w1(`auth?.check && auth?.user?.[${U}]`,Z):w1("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,W)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let z=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let W=z.index,U,q,_=Y.slice(W+6),B=K2(_);if(B)U=B.value,q=W+6+B.consumed;else q=W+6;let j=X(Y,"guest","endguest",q);if(j===-1){console.warn(`[stx] @guest directive at position ${W} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(q,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?w1(`!auth?.check || !auth?.user?.[${U}]`,Z):w1("!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,W)+O+Y.substring(j+9),K=!0}}function Q(K,z,W){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(z)U.push(z);if(W){let q=w1(W,Z);U.push(q)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let z=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!z)return null;return{ability:z[1],type:z[2],id:z[3]?.trim(),paramsEnd:z[0].length}}for(let K of["can","cannot"]){let z=`end${K}`,W=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let q=Y.match(new RegExp(`@${K}\\s*\\(`));if(!q||q.index===void 0)break;let _=q.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,z,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${z} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${z}(?![a-z])`,"g"),R=new RegExp(`@${W}\\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((b,C)=>b.pos-C.pos);for(let b of M){if(b.type==="open"){V++;continue}if(b.type==="close"){V--;continue}if(V===0)O.push(b)}let D=[],E=0;for(let b=0;b<O.length;b++){let C=O[b];if(D.push({content:F.slice(E,C.pos),ability:void 0}),C.type==="elseDirective"){let d=F.slice(C.pos+`@${W}`.length),f=G(d);if(f){D[D.length-1]={content:F.slice(E,C.pos)},E=C.pos+`@${W}`.length+f.paramsEnd,D.push({content:"",ability:f.ability,type:f.type,id:f.id}),D.pop();let m=O[b+1],o=m?m.pos:F.length;D.push({content:F.slice(E,o),ability:f.ability,type:f.type,id:f.id}),E=o}}else E=C.pos+5}if(E<F.length){let b=D[D.length-1];if(O.length>0&&O[O.length-1].type==="else")D.push({content:F.slice(E),isFinalElse:!0});else if(D.length===0)D.push({content:F.slice(E)})}let I=Q(j.ability,j.type,j.id),k=K==="can"?I:!I,S="";if(k)S=D[0]?.content||"";else{let b=!1;for(let C=1;C<D.length;C++){let d=D[C];if(d.isFinalElse){S=d.content,b=!0;break}if(d.ability){let f=Q(d.ability,d.type,d.id);if(K==="can"?f:!f){S=d.content,b=!0;break}}}if(!b&&D.length>0){let C=D[D.length-1];if(C.isFinalElse)S=C.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${z}`.length),U=!0}}return Y}function W3($,Z,Y){let X=$;function J(Q,G,K,z,W){let U=!0;while(U){U=!1;let q=new RegExp(`@${G}\\s*\\(`),_=Q.match(q);if(!_||_.index===void 0)break;let B=_.index,j=A1(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=z(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=r(W,`Error processing @${G} directive: ${N}`,p.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=w1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=w1(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 U3($,Z,Y){let X=$,J="development";function Q(G,K,z,W){let U=new RegExp(`@${K}(?![a-z])`,"g"),q=new RegExp(`@${z}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${z}(?![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 I=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;O+=I[0].length,W=J===I[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,q.lastIndex=A;let I=U.exec(j),k=q.exec(j),S=I?I.index:1/0,b=k?k.index:1/0;if(S<b)V++,A=S+I[0].length;else if(b<1/0){if(V--,V===0){w=b;break}A=b+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${z} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let I=R.indexOf("@",T);if(I===-1)break;let k=R.substring(I);if(_.test(k)){M++,T=I+1;continue}if(B.test(k)){M--,T=I+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=I;break}T=I+1}let D;if(N!==-1){let I=R.slice(0,N),k=R.slice(N+5);D=W?I:k}else D=W?R:"";let E=`@${z}`.length;j=j.substring(0,F)+D+j.substring(w+E),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 h4=P(()=>{eY();U1();g4();A0()});function z2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function i1($,Z){if(!$)return Z?.nonceGenerator?.()??z2();let Y=q3.get($);if(!Y)Y=Z?.nonceGenerator?.()??z2(),q3.set($,Y);return Y}function hR($){q3.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 B3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${W2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function dR($){return{enabled:!0,directives:{strict:Kq,moderate:_3,relaxed:zq,api:Wq}[$]||_3,useNonce:$==="strict",addMetaTag:!0}}function uR($,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:[],z=[...new Set([...K,...J])];Y[Q]=z}}return Y}function U2($,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?i1(Y,Z):void 0,J=B3(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 V0($,Z,Y,X=0){let J=0,Q=X,G=null,K=0,z=!1;while(Q<$.length){let W=$[Q];if(G&&z){z=!1,Q++;continue}if(G&&W==="\\"){z=!0,Q++;continue}if(z=!1,(W==='"'||W==="'"||W==="`")&&!G){G=W,Q++;continue}if(W===G&&G!=="`"){G=null,Q++;continue}if(G==="`"&&W==="$"&&$[Q+1]==="{"){K++,Q+=2;continue}if(K>0&&W==="}"){K--,Q++;continue}if(W==="`"&&G==="`"&&K===0){G=null,Q++;continue}if(G){Q++;continue}if(W===Z)J++;else if(W===Y){if(J--,J===0)return Q}Q++}return-1}function $2($,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 G3($){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 A1($,Z){let Y=eU($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function eU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=V0($,"(",")",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 z=G.exec($),W=K.exec($),U=z?z.index:1/0,q=W?W.index:1/0;if(U<q)J++,Q=U+z[0].length;else if(q<1/0){if(J--,J===0)return q;Q=q+W[0].length}else break}return-1}function Z2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=A1($,X);if(!J)return null;let Q=J.endPos,G=p1($,"if","endif",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],W=0,U="if",q=J.expression,_=0,B=0;while(W<K.length){let j=K.indexOf("@",W);if(j===-1)break;W=j;let H=K.substring(j);if(/^@if\s*\(/.test(H)){B++,W++;continue}if(/^@endif(?![a-z])/.test(H)){B--,W+=6;continue}if(B===0){let L=H.match(/^@elseif\s*/);if(L){z.push({type:U,condition:q,content:K.substring(_,W),start:Q+_,end:Q+W});let F=W+L[0].length,O=A1(K,F);if(!O){W++;continue}U="elseif",q=O.expression,W=O.endPos,_=W;continue}else if(/^@else(?![a-z])/.test(H)){z.push({type:U,condition:q,content:K.substring(_,W),start:Q+_,end:Q+W}),U="else",q=void 0,W+=5,_=W;continue}}W++}return z.push({type:U,condition:q,content:K.slice(_),start:Q+_,end:Q+K.length}),{fullMatch:$.slice(Z,G+6),branches:z,start:Z,end:G+6}}function Z$($){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=Z2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function f4($,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,z=K+Q[0].length-1,W=V0($,"(",")",z);if(W===-1){Q=J.exec($);continue}let U=$.slice(z+1,W),q=W+1,_=p1($,Z,Y,q);if(_===-1){Q=J.exec($);continue}let B=$.slice(q,_),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 K3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=A1($,X);if(!J)return null;let Q=J.endPos,G=p1($,"switch","endswitch",Q);if(G===-1)return null;let K=$.slice(Q,G),z=[],W=0,U=null,q=0;while(W<K.length){let _=K.slice(W),B=_.match(/^@switch\s*\(/),j=_.match(/^@endswitch(?![a-z])/);if(B){if(q++,U)U.content+=B[0];W+=B[0].length;continue}if(j){if(q--,U)U.content+=j[0];W+=j[0].length;continue}if(q>0){if(U)U.content+=K[W];W++;continue}let H=_.match(/^@case\s*/),L=_.match(/^@default(?![a-z])/),F=_.match(/^@break(?![a-z])/);if(H&&_.startsWith("@case")){if(U)z.push(U);let O=W+H[0].length,V=A1(K,O);if(!V){W++;continue}U={type:"case",value:V.expression,content:""},W=V.endPos}else if(L&&_.startsWith("@default")){if(U)z.push(U);U={type:"default",content:""},W+=L[0].length}else if(F&&_.startsWith("@break"))W+=F[0].length;else{if(U)U.content+=K[W];W++}}if(U)z.push(U);return{fullMatch:$.slice(Z,G+10),expression:J.expression,cases:z,start:Z,end:G+10}}var Y2=()=>{};function $q($){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)==="{{{"?"{{{":"{!!":"{{",z=Q?K==="{{{"?"}}}":"!!}":"}}",W=G+K.length,U=Zq($,W,z);if(U===-1){Y=G+1;continue}let q=$.slice(W,U).trim(),_=U+z.length;Z.push({fullMatch:$.slice(G,_),expression:q,start:G,end:_,isRaw:Q}),Y=_}return Z}function Zq($,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 Yq($){let Z=G3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=Xq(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function Xq($){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=V0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=Q2(G);return{name:X,args:K}}function Q2($){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 Jq($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=V0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function Qq($){let Z=[],X=new x4($).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 z=K.value;if(J++,J>=X.length)break;let W=X[J];if(W.type==="IDENTIFIER"){let U=W.value;if(J++,J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let q=J<X.length?X[J].start:$.length,_=X2(X,J,$);J=_.nextIndex,Z.push({type:"variable",name:U,value:$.slice(q,_.endPos),exported:G,start:K.start,end:_.endPos})}}else if(W.type==="PUNCTUATION"&&(W.value==="{"||W.value==="[")){let U=W.start,q=W.value==="{"?"}":"]",_=V0($,W.value,q,U);if(_!==-1){let B=$.slice(U,_+1);if(J=J2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=X2(X,J,$);J=H.nextIndex;let L=`__stx_destructured_${Z.length}`;Z.push({type:"variable",name:L,value:`${$.slice(j,H.endPos)}; ${z} ${B} = ${L}`,exported:G,start:K.start,end:H.endPos})}}}}else if(K.type==="IDENTIFIER"&&K.value==="function"){let z=G?X[J-1].start:K.start;if(J++,J>=X.length)break;let W=X[J];if(W.type==="IDENTIFIER"){let U=W.value;J++;let q=-1;while(J<X.length){if(X[J].type==="PUNCTUATION"&&X[J].value==="{"){q=X[J].start;break}J++}if(q!==-1){let _=V0($,"{","}",q);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=J2(X,_+1)}}}else J++}return Z}function X2($,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 J2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var G2=()=>{};var g4=P(()=>{Y2();G2()});function Gq($,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=K3(X,G);if(!K)break;try{let z;if($0(K.expression))z=Z0(K.expression,Object.keys(Z))(...Object.values(Z));else z=e(K.expression,Z);let W="",U=!1;for(let q of K.cases)if(q.type==="default"){if(!U)W=q.content.trim()}else try{let _;if(q.value&&$0(q.value))_=Z0(q.value,Object.keys(Z))(...Object.values(Z));else if(q.value)_=e(q.value,Z);if(z===_){W=q.content.trim(),U=!0;break}}catch{continue}X=X.substring(0,G)+W+X.substring(K.end),J=!0}catch(z){let W=z instanceof Error?z.message:String(z),U=r("Switch",`Error evaluating @switch expression: ${W}`,p.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function c1($,Z,Y){let X=$;X=Gq(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,z=A1(X,K+7);if(!z)break;let W=z.endPos,U=p1(X,"unless","endunless",W);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 q=X.slice(W,U),_=z.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(q))!==null)V.push({pos:A.index,type:"open"});while((A=F.exec(q))!==null)V.push({pos:A.index,type:"close"});while((A=O.exec(q))!==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=q.slice(0,B),L=q.slice(B+5);j=`@if (${_})${L}@else ${H}@endif`}else j=`@if (!(${_}))${q}@endif`;X=X.substring(0,K)+j+X.substring(U+10),Q=!0}}X=W3(X,Z,Y),X=U3(X,Z,Y),X=z3(X,Z);let J=()=>{let Q=Z$(X);if(Q.length===0)return!1;for(let G=Q.length-1;G>=0;G--){let K=Q[G];try{let z="",W=!1;for(let U of K.branches){if(W)break;if(U.type==="else")z=U.content,W=!0;else try{let q;if(U.condition&&$0(U.condition))q=Z0(U.condition,Object.keys(Z))(...Object.values(Z));else if(U.condition)q=e(U.condition,Z);if(q)z=U.content,W=!0}catch(q){z=r(U.type==="if"?"If":"Elseif",`Error in @${U.type}(${U.condition}): ${q instanceof Error?q.message:String(q)}`,p.EVALUATION_ERROR),W=!0}}X=X.substring(0,K.start)+z+X.substring(K.end)}catch(z){let W=z instanceof Error?z.message:String(z),U=r("If",`Error processing @if block: ${W}`,p.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 K2($){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 z3($,Z){let Y=$;function X(K,z,W,U){let q=1,_=U,B=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),j=new RegExp(`@${W}(?![a-z])`,"g");while(_<K.length&&q>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)q++,_=F+H[0].length;else if(O<1/0){if(q--,q===0)return O;_=O+L[0].length}else break}return-1}function J(K,z,W){let U=0,q=new RegExp(`@${z}(?:\\s*\\(|\\s|$)`,"g"),_=new RegExp(`@${W}(?![a-z])`,"g"),B=/@else(?![a-z])/g,j=[],H;while((H=q.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 z=Y.match(/@auth(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let W=z.index,U,q,_=Y.slice(W+5),B=K2(_);if(B)U=B.value,q=W+5+B.consumed;else q=W+5;let j=X(Y,"auth","endauth",q);if(j===-1){console.warn(`[stx] @auth directive at position ${W} has no matching @endauth \u2014 the block was skipped.`);break}let H=Y.slice(q,j),L=J(H,"auth","endauth"),F;if(!Z.auth)F=!1;else F=U?w1(`auth?.check && auth?.user?.[${U}]`,Z):w1("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,W)+O+Y.substring(j+8),K=!0}}{let K=!0;while(K){K=!1;let z=Y.match(/@guest(?:\s*\(|\s|(?=\n))/);if(!z||z.index===void 0)break;let W=z.index,U,q,_=Y.slice(W+6),B=K2(_);if(B)U=B.value,q=W+6+B.consumed;else q=W+6;let j=X(Y,"guest","endguest",q);if(j===-1){console.warn(`[stx] @guest directive at position ${W} has no matching @endguest \u2014 the block was skipped.`);break}let H=Y.slice(q,j),L=J(H,"guest","endguest"),F;if(!Z.auth)F=!0;else F=U?w1(`!auth?.check || !auth?.user?.[${U}]`,Z):w1("!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,W)+O+Y.substring(j+9),K=!0}}function Q(K,z,W){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(z)U.push(z);if(W){let q=w1(W,Z);U.push(q)}return Z.permissions.check(...U)}catch{return!1}return!1}function G(K){let z=K.match(/^\s*\(\s*'([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)/);if(!z)return null;return{ability:z[1],type:z[2],id:z[3]?.trim(),paramsEnd:z[0].length}}for(let K of["can","cannot"]){let z=`end${K}`,W=K==="can"?"elsecan":"elsecannot",U=!0;while(U){U=!1;let q=Y.match(new RegExp(`@${K}\\s*\\(`));if(!q||q.index===void 0)break;let _=q.index,B=Y.slice(_+`@${K}`.length),j=G(B);if(!j)break;let H=_+`@${K}`.length+j.paramsEnd,L=X(Y,K,z,H);if(L===-1){console.warn(`[stx] @${K} directive at position ${_} has no matching @${z} \u2014 the block was skipped.`);break}let F=Y.slice(H,L),O=[],V=0,A=new RegExp(`@${K}\\s*\\(`,"g"),w=new RegExp(`@${z}(?![a-z])`,"g"),R=new RegExp(`@${W}\\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((b,y)=>b.pos-y.pos);for(let b of M){if(b.type==="open"){V++;continue}if(b.type==="close"){V--;continue}if(V===0)O.push(b)}let D=[],E=0;for(let b=0;b<O.length;b++){let y=O[b];if(D.push({content:F.slice(E,y.pos),ability:void 0}),y.type==="elseDirective"){let d=F.slice(y.pos+`@${W}`.length),f=G(d);if(f){D[D.length-1]={content:F.slice(E,y.pos)},E=y.pos+`@${W}`.length+f.paramsEnd,D.push({content:"",ability:f.ability,type:f.type,id:f.id}),D.pop();let m=O[b+1],o=m?m.pos:F.length;D.push({content:F.slice(E,o),ability:f.ability,type:f.type,id:f.id}),E=o}}else E=y.pos+5}if(E<F.length){let b=D[D.length-1];if(O.length>0&&O[O.length-1].type==="else")D.push({content:F.slice(E),isFinalElse:!0});else if(D.length===0)D.push({content:F.slice(E)})}let I=Q(j.ability,j.type,j.id),k=K==="can"?I:!I,S="";if(k)S=D[0]?.content||"";else{let b=!1;for(let y=1;y<D.length;y++){let d=D[y];if(d.isFinalElse){S=d.content,b=!0;break}if(d.ability){let f=Q(d.ability,d.type,d.id);if(K==="can"?f:!f){S=d.content,b=!0;break}}}if(!b&&D.length>0){let y=D[D.length-1];if(y.isFinalElse)S=y.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${z}`.length),U=!0}}return Y}function W3($,Z,Y){let X=$;function J(Q,G,K,z,W){let U=!0;while(U){U=!1;let q=new RegExp(`@${G}\\s*\\(`),_=Q.match(q);if(!_||_.index===void 0)break;let B=_.index,j=A1(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=z(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=r(W,`Error processing @${G} directive: ${N}`,p.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=w1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=w1(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 U3($,Z,Y){let X=$,J="development";function Q(G,K,z,W){let U=new RegExp(`@${K}(?![a-z])`,"g"),q=new RegExp(`@${z}(?![a-z])`,"g"),_=new RegExp(`^@${K}(?![a-z])`),B=new RegExp(`^@${z}(?![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 I=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!I)break;O+=I[0].length,W=J===I[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,q.lastIndex=A;let I=U.exec(j),k=q.exec(j),S=I?I.index:1/0,b=k?k.index:1/0;if(S<b)V++,A=S+I[0].length;else if(b<1/0){if(V--,V===0){w=b;break}A=b+k[0].length}else break}if(w===-1){console.warn(`[stx] @${K} directive at position ${F} has no matching @${z} \u2014 the block was skipped.`);break}let R=j.substring(O,w),N=-1,M=0,T=0;while(T<R.length){let I=R.indexOf("@",T);if(I===-1)break;let k=R.substring(I);if(_.test(k)){M++,T=I+1;continue}if(B.test(k)){M--,T=I+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=I;break}T=I+1}let D;if(N!==-1){let I=R.slice(0,N),k=R.slice(N+5);D=W?I:k}else D=W?R:"";let E=`@${z}`.length;j=j.substring(0,F)+D+j.substring(w+E),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 h4=P(()=>{eY();U1();g4();A0()});function z2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function i1($,Z){if(!$)return Z?.nonceGenerator?.()??z2();let Y=q3.get($);if(!Y)Y=Z?.nonceGenerator?.()??z2(),q3.set($,Y);return Y}function hR($){q3.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 B3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${W2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function dR($){return{enabled:!0,directives:{strict:Kq,moderate:_3,relaxed:zq,api:Wq}[$]||_3,useNonce:$==="strict",addMetaTag:!0}}function uR($,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:[],z=[...new Set([...K,...J])];Y[Q]=z}}return Y}function U2($,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?i1(Y,Z):void 0,J=B3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
3774
|
${J}`)}function mR($,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 q2($,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?i1(Z,Q):void 0;return B3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return i1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=i1(Z,Q);return J}function lR(){return[Uq,qq]}function pR($){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 _q($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function cR($,Z){if(!$.enabled)return{};let Y=$.useNonce?i1(Z,$):void 0,X=W2($.directives,Y);return{[_q($.reportOnly)]:X}}var q3,Kq,_3,zq,Wq,Uq,qq,iR;var _2=P(()=>{q3=new WeakMap;Kq={"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},_3={"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},zq={"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'"]},Wq={"default-src":["'none'"],"frame-ancestors":["'none'"]};Uq={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?i1(Y,Q):void 0;return B3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},qq={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return i1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};iR={enabled:!1,reportOnly:!1,directives:_3,useNonce:!1,addMetaTag:!0}});import{Buffer as B2}from"buffer";import j2 from"crypto";function jq($=Bq){let Z=j2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return V5=Z,Z}function Hq(){if(!V5)jq();return V5}function rR(){V5=null}function aR($){V5=$}function Oq($=H2){let Z=Hq();return`<input type="hidden" name="${$}" value="${Z}">`}function O2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return Oq(X||H2)})}function tR($,Z){let Y=Z??V5;if(!Y)return!1;let X=B2.from($),J=B2.from(Y);if(X.length!==J.length)return!1;return j2.timingSafeEqual(X,J)}var Bq=40,H2="_token",V5=null;var L2=()=>{};async function F2($,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 Lq(J,Q,Z,Y,X);else J=await Fq(J,Q,Z,Y,X)}return J}async function Lq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,z=`@end${Q}`,W=$,U=f1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${z}`,"g"),q=[],_=U.exec(W);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?V2(j):[],O=H.trim(),V=await G(O,F,Y,X);q.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);q.push({original:B,processed:r("CustomDirective",`Error in @${Q}${j?`(${j})`:""}: ${O}`,p.EVALUATION_ERROR),startIndex:L})}_=U.exec(W)}for(let B=q.length-1;B>=0;B--){let{original:j,processed:H}=q[B];W=W.replace(j,H)}return W}async function Fq($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,z=f1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),W=[],U=z.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=V2(j),F=await G("",L,Y,X);W.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);W.push({original:B,processed:r("CustomDirective",`Error in @${Q}(${j}): ${F}`,p.EVALUATION_ERROR),startIndex:H})}U=z.exec(K)}let q=f1(`@${Q}(?!\\w)(?!\\s*\\()`,"g"),_=q.exec(K);while(_!==null){let[B]=_,j=_.index||0;try{let H=await G("",[],Y,X);W.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);W.push({original:B,processed:r("CustomDirective",`Error in @${Q}: ${L}`,p.EVALUATION_ERROR),startIndex:j})}_=q.exec(K)}for(let B=W.length-1;B>=0;B--){let{original:j,processed:H}=W[B];K=K.replace(j,H)}return K}function V2($){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 w2=P(()=>{U1();z5()});var j3={};u(j3,{useTitle:()=>Tq,useSeoMeta:()=>u4,usePageTitle:()=>Tq,useHead:()=>o1,resetHead:()=>Aq,renderHtmlAttrs:()=>Dq,renderHead:()=>Mq,renderBodyAttrs:()=>Eq,processTitleDirective:()=>Sq,processMetaDirective:()=>bq,processHeadDirective:()=>kq,getPageMeta:()=>wq,getHead:()=>Y$,definePageMeta:()=>Nq,applyHead:()=>Iq});function Y$(){return R1}function wq(){return d4}function Aq(){R1={},Vq.length=0,d4={}}function o1($){R1=Rq(R1,$)}function Rq($,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 u4($){let Z=[];if($.description)Z.push({name:"description",content:$.description});if($.keywords){let z=Array.isArray($.keywords)?$.keywords.join(", "):$.keywords;Z.push({name:"keywords",content:z})}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 z of $.articleTags)Z.push({property:"article:tag",content:z});let K=[];if($.canonical)K.push({rel:"canonical",href:$.canonical});o1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function Nq($){if(d4={...d4,...$},$.title||$.description)u4({title:$.title,description:$.description})}function Tq($){let Z=typeof $==="function"?$():$;o1({title:Z})}function Mq($=R1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${n1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${n1(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}="${n1(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}="${n1(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}="${n1(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 Dq($=R1){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${n1(Y)}"`).join(" ")}function Eq($=R1){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${n1(Y)}"`).join(" ")}function n1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Iq($=R1){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 kq($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
|
|
3776
3776
|
`,""}),headContent:Z.trim()}}function Sq($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return o1({title:G}),""})}function bq($,Z){return $.replace(/@meta\s*\(\s*(['"`])(.+?)\1\s*,\s*(?:(['"`])(.+?)\3|([^)]+))\s*\)/g,(Y,X,J,Q,G,K)=>{let z=Q?G:K,W=Q?z:Z[(z||"").trim()]??z,q=J.includes(":")?{property:J,content:W}:{name:J,content:W};return o1({meta:[q]}),""})}var R1,Vq,d4;var X$=P(()=>{R1={},Vq=[],d4={}});import Pq from"crypto";function R0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Cq($){return{...H3,...$.forms?.classes}}function m4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function yq(){return Pq.randomUUID()}function QN($,Z,Y,X){let J=Cq(X),Q=$;return Q=xq(Q,Z),Q=G$(Q,Z),Q=O3(Q,Z,J),Q=L3(Q,Z,J),Q}function G$($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=yq();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${R0(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="${R0(Q)}">`;return X}),Y}function O3($,Z,Y=H3){let X=$;return X=X.replace(/@form\(\s*(?:(?:'([^']+)'|"([^"]+)")\s*)?(?:,\s*(?:'([^']+)'|"([^"]+)")?)?\s*(?:,\s*\{([^}]+)\}\s*)?\)/g,(J,Q,G,K,z,W="")=>{let U=Q||G||"POST",q=K||z||"",_=N1(W),B=U.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",H=`<form method="${R0(j)}" action="${R0(q)}"${_?` ${_}`:""}>`;if(H+=`
|
|
@@ -4020,8 +4020,8 @@ else {
|
|
|
4020
4020
|
${z?`{${z}}`:"{}"}
|
|
4021
4021
|
</script>
|
|
4022
4022
|
</div>`}}});var d2={};u(d2,{warnUnbalancedTags:()=>I3,findUnbalancedTags:()=>h2});function T1($){return $.replace(/[^\n]/g," ")}function h2($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,T1).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,T1).replace(/<!--[\s\S]*?-->/g,T1).replace(/\{\{\{[\s\S]*?\}\}\}/g,T1).replace(/\{\{[\s\S]*?\}\}/g,T1).replace(/\{!![\s\S]*?!!\}/g,T1).replace(/"[^"]*"/g,T1).replace(/'[^']*'/g,T1),Y=new Map,X=new Map,J=/<(\/?)([A-Za-z][\w-]*)\b[^>]*?(\/?)>/g,Q;while((Q=J.exec(Z))!==null){let K=Q[1]==="/",z=Q[2],W=Q[3]==="/";if(I_.has(z.toLowerCase()))continue;if(W)continue;if(K)X.set(z,(X.get(z)??0)+1);else{let U=Y.get(z);if(U)U.count++;else{let q=Z.slice(0,Q.index).split(`
|
|
4023
|
-
`).length;Y.set(z,{count:1,firstLine:q})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(k_.has(K.toLowerCase()))continue;let z=Y.get(K)?.count??0,W=X.get(K)??0;if(z!==W)G.push({tag:K,opened:z,closed:W,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function I3($,Z){let Y;try{Y=h2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(g2.has(X))return;g2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:z}of Y)if(G>K){let W=z?` (first opened at line ${z})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${W} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var I_,k_,g2;var k3=P(()=>{I_=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),k_=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);g2=new Set});import l0 from"path";import S3 from"fs";function u2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function m2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class l2{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(),u2(J),m2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${u2(J)}.stx`,`${m2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=l0.resolve(l0.dirname(Z),`${J}.stx`);if(await i(B))return B;return null}let K=[],z=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(l0.join(l0.dirname(W),"components"));if(z)K.push(z);let U=l0.join(l0.dirname(Z),"components");if(!K.includes(U))K.push(U);let q=process.cwd(),_=[l0.resolve(q,"src/components"),l0.resolve(q,"components"),l0.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=l0.join(B,j);if(await i(H))return H}try{if(!S3.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=S3.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=l0.join(B,L.name);for(let O of G){let V=l0.join(F,O);if(await i(V))return V}}}catch{}}return null}}var C0;var b3=P(()=>{L0();C0=new l2});function M1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function S_($){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 P3;var C3=P(()=>{P3={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=S_($),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,z=[];if(X.reactive)z.push(`:href="${M1(X.value)}"`);else z.push(`href="${M1(X.value)}"`);if(J)z.push(`class="${M1(J)}"`);if(z.push("data-stx-link"),z.push(`data-stx-active-class="${M1(Q)}"`),z.push(`data-stx-exact-active-class="${M1(G)}"`),K)z.push("data-stx-prefetch");let W=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,q]of Object.entries($.static)){if(W.has(U))continue;if(typeof q==="boolean"){if(q)z.push(M1(U))}else z.push(`${M1(U)}="${M1(q)}"`)}return`<a ${z.join(" ")}>${Z}</a>`}}});function j0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function
|
|
4024
|
-
`}if(V){let S=[];if(U==="avif"||U==="auto"){let b=U$(X,A,w,B,"avif"),
|
|
4023
|
+
`).length;Y.set(z,{count:1,firstLine:q})}}}let G=[];for(let K of new Set([...Y.keys(),...X.keys()])){if(k_.has(K.toLowerCase()))continue;let z=Y.get(K)?.count??0,W=X.get(K)??0;if(z!==W)G.push({tag:K,opened:z,closed:W,firstOpenLine:Y.get(K)?.firstLine??0})}return G}function I3($,Z){let Y;try{Y=h2($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(g2.has(X))return;g2.add(X);let J=Z?Z.split(/[/\\]/).pop()||Z:"template";for(let{tag:Q,opened:G,closed:K,firstOpenLine:z}of Y)if(G>K){let W=z?` (first opened at line ${z})`:"";console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 an unclosed <${Q}>${W} may swallow the content that follows it.`)}else console.warn(`[stx] ${J}: <${Q}> ${G} opened, ${K} closed \u2014 ${K-G} stray </${Q}>.`)}var I_,k_,g2;var k3=P(()=>{I_=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),k_=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);g2=new Set});import l0 from"path";import S3 from"fs";function u2($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function m2($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class l2{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(),u2(J),m2(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${u2(J)}.stx`,`${m2(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=l0.resolve(l0.dirname(Z),`${J}.stx`);if(await i(B))return B;return null}let K=[],z=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(l0.join(l0.dirname(W),"components"));if(z)K.push(z);let U=l0.join(l0.dirname(Z),"components");if(!K.includes(U))K.push(U);let q=process.cwd(),_=[l0.resolve(q,"src/components"),l0.resolve(q,"components"),l0.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=l0.join(B,j);if(await i(H))return H}try{if(!S3.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=S3.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=l0.join(B,L.name);for(let O of G){let V=l0.join(F,O);if(await i(V))return V}}}catch{}}return null}}var C0;var b3=P(()=>{L0();C0=new l2});function M1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function S_($){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 P3;var C3=P(()=>{P3={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=S_($),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,z=[];if(X.reactive)z.push(`:href="${M1(X.value)}"`);else z.push(`href="${M1(X.value)}"`);if(J)z.push(`class="${M1(J)}"`);if(z.push("data-stx-link"),z.push(`data-stx-active-class="${M1(Q)}"`),z.push(`data-stx-exact-active-class="${M1(G)}"`),K)z.push("data-stx-prefetch");let W=new Set(["to","class","className","activeClass","exactActiveClass","prefetch"]);for(let[U,q]of Object.entries($.static)){if(W.has(U))continue;if(typeof q==="boolean"){if(q)z.push(M1(U))}else z.push(`${M1(U)}="${M1(q)}"`)}return`<a ${z.join(" ")}>${Z}</a>`}}});function j0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function S0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function v3($,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 p2($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=b_[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 x3($,Z,Y,X){return Z.map((J)=>`${U$($,J,void 0,Y,X)} ${J}w`).join(", ")}function P_($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${U$($,G,void 0,X,J)} ${Q}x`}).join(", ")}function U$($,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 C_($,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 b_,y3,f3;var g3=P(()=>{b_={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},y3=[320,640,768,1024,1280,1536,1920];f3={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=S0($,"src")||"",J=S0($,"alt")||"",Q=S0($,"width"),G=S0($,"height"),K=S0($,"sizes"),z=S0($,"srcset"),W=S0($,"densities"),U=S0($,"format"),q=S0($,"placeholder"),_=S0($,"placeholderColor")||"#e5e7eb",B=S0($,"provider"),j=S0($,"class")||S0($,"className")||"",H=S0($,"style")||"",L=S0($,"quality"),F=v3($,"lazy",!0),O=v3($,"preload",!1),V=v3($,"picture",!1)||!!U,A=Q?Number.parseInt(Q):void 0,w=G?Number.parseInt(G):void 0,R=z||"",N="";if(!R&&K)R=x3(X,y3,B,U),N=p2(K);else if(!R&&W){let S=W.split(/\s+/).map((b)=>Number.parseFloat(b.replace("x","")));R=P_(X,S,A,B,U)}else if(K)N=p2(K);let M=[];if(H)M.push(H);if(A&&w)M.push(`aspect-ratio:${A}/${w}`);if(q==="blur"||q==="color"||q==="thumbhash"){let S=C_(A||16,w||9,_);M.push(`background-image:url(${S})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat")}else if(q&&q!=="empty"&&q!=="none")M.push(`background-image:url(${j0(q)})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat");let T=U$(X,A,w,B,U),D=[];if(D.push(`src="${j0(T)}"`),D.push(`alt="${j0(J)}"`),Q)D.push(`width="${j0(Q)}"`);if(G)D.push(`height="${j0(G)}"`);if(F)D.push('loading="lazy"');if(D.push('decoding="async"'),j)D.push(`class="${j0(j)}"`);if(M.length>0)D.push(`style="${j0(M.join(";"))}"`);if(R)D.push(`srcset="${j0(R)}"`);if(N)D.push(`sizes="${j0(N)}"`);let E=new Set(["src","alt","width","height","lazy","sizes","srcset","placeholder","placeholderColor","class","className","style","format","provider","quality","densities","preload","picture"]);for(let[S,b]of Object.entries($.static)){if(E.has(S))continue;if(typeof b==="boolean"){if(b)D.push(j0(S))}else D.push(`${j0(S)}="${j0(b)}"`)}let I=`<img ${D.join(" ")} />`,k="";if(O){let b=U==="webp"?"image/webp":U==="avif"?"image/avif":"";k=`<link rel="preload" as="image" href="${j0(T)}"${b?` type="${b}"`:""}${R?` imagesrcset="${j0(R)}"`:""}${N?` imagesizes="${j0(N)}"`:""} />
|
|
4024
|
+
`}if(V){let S=[];if(U==="avif"||U==="auto"){let b=U$(X,A,w,B,"avif"),y=R?x3(X,y3,B,"avif"):`${b}`;S.push(`<source type="image/avif" srcset="${j0(y)}"${N?` sizes="${j0(N)}"`:""} />`)}if(U==="webp"||U==="auto"){let b=U$(X,A,w,B,"webp"),y=R?x3(X,y3,B,"webp"):`${b}`;S.push(`<source type="image/webp" srcset="${j0(y)}"${N?` sizes="${j0(N)}"`:""} />`)}return`${k}<picture>
|
|
4025
4025
|
${S.join(`
|
|
4026
4026
|
`)}
|
|
4027
4027
|
${I}
|
|
@@ -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 OT($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[W,U]=z,q=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of q){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=[N5.resolve(N5.dirname(Y),`${_}.stx`),N5.resolve(N5.dirname(Y),_),N5.resolve(X.componentsDir||"components",`${_}.stx`),N5.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(W,""),K.lastIndex=0}return Q}async function LT($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,W;while((W=z.exec(G))!==null){let U=W.index,q=U+W[0].length-1,_=1,B=q+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(q+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.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=O0(O,Z)}catch(I){let k=I instanceof Error?I.message:String(I);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 D=G.substring(U,N),E=await B1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+E+G.substring(N),z.lastIndex=0}return G}async function FT($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=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"]),W=n$(G);return G=W.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,z),G=o$(G,W.scripts),G;async function B(j,H,L,F){let O=j,V=Y9(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?Z9(w.tagName):w.tagName,N=m_(w.attributes),M={};for(let[D,E]of Object.entries(N)){if(D.startsWith("@"))continue;if(D.startsWith("__stx_")){let I=D.slice(6);M[I]=X9(E,J);continue}if(D.startsWith(":")){let I=D.slice(1),k=E==="true"?I:E;try{if(!$0(k)){if(J.debug)console.error(`Unsafe expression in :${I} binding: ${k}`);M[I]=E}else{let S=Z0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${I} binding:`,S);M[I]=E}continue}if(typeof E==="string"&&E.includes("{{")&&E.includes("}}")){let I=E.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(I)try{let k=I[1];if(!$0(k)){if(J.debug)console.error(`Unsafe expression in ${D}: ${k}`);M[D]=E}else{let S=Z0(k,Object.keys(Z));M[D]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${D}:`,k);M[D]=E}else{let k=E,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,b;while((b=S.exec(E))!==null)try{let C=b[1];if(!$0(C)){if(J.debug)console.error(`Unsafe expression in ${D}: ${C}`);continue}let f=Z0(C,Object.keys(Z))(...Object.values(Z));k=k.replace(b[0],String(f??""))}catch(C){if(J.debug)console.error(`Error evaluating expression in ${D}:`,C)}M[D]=k}}else M[D]=E}let T=await B1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var ZX=P(()=>{A0();L0();s$()});var KX={};u(KX,{processESImports:()=>GX,processComponents:()=>a4});import r4 from"fs";import h0 from"path";function p_($,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,z)=>z.toUpperCase())};for(let[G,K]of Object.entries($)){let z=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(z.startsWith("@")){X.events[z]=K;continue}if(z.startsWith("__stx_")){let W=Q(z.slice(6));X.serverDynamic[W]=X9(K,Y);continue}if(z.startsWith(":")){let W=Q(z.slice(1)),U=K==="true"?W:K;try{if(!$0(U)){if(Y.debug)console.error(`Unsafe expression in :${W} binding: ${U}`);X.clientReactive[W]=U;continue}let q=Object.keys(Z),B=Z0(U,q)(...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)&&!q.includes(F))){X.clientReactive[W]=U;continue}}X.serverDynamic[W]=B}catch{X.clientReactive[W]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let W=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(W)try{let U=W[1];if($0(U)){let _=Z0(U,Object.keys(Z))(...Object.values(Z));X.static[z]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${z}: ${U}`);X.static[z]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${z}:`,U);X.static[z]=K}else{let U=K,q=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=q.exec(K))!==null)try{let B=_[1];if(!$0(B)){if(Y.debug)console.error(`Unsafe expression in ${z}: ${B}`);continue}let H=Z0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${z}:`,B)}X.static[z]=U}continue}X.static[z]=K}return X}function c_($){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 XX($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function i_($){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(C0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function n_($){let Z=JX.get($);if(Z)return Z;let Y=new Map,X=[h0.join($,"src"),h0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=r4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let W=h0.join(Q,z.name);if(z.isDirectory()){if(z.name==="node_modules"||z.name.startsWith("."))continue;J(W,G+1)}else if(z.isFile()&&z.name.endsWith(".stx")){let U=z.name.slice(0,-4);if(!Y.has(U))Y.set(U,W);let q=U.toLowerCase();if(!Y.has(q))Y.set(q,W);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,W)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return JX.set($,Y),Y}function o_($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=h0.join(Y,"node_modules",$);try{if(r4.statSync(X).isDirectory())return X}catch{}let J=h0.dirname(Y);if(J===Y)return null;Y=J}}async function GX($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=h0.dirname(Y),K=$,z=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(z,(W,U,q)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=q,j,H=[];while((j=_.exec(q))!==null){let[L,F,O,V]=j,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=h0.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=o_(V,G);if(!A&&!w)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let D=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(D,T),J.add(T)};if(O&&w)N(O,w),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((D)=>D.trim()).filter(Boolean).map((D)=>{let E=D.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(E)return{source:E[1],local:E[2]};return{source:D,local:D}}),T=A?n_(A):null;for(let{source:D,local:E}of M){let I=null;if(w)I=w;else if(T)I=T.get(D)??T.get(D.toLowerCase())??T.get(D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(I)N(E,I),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return W;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 s_($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[W,U]=z,q=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of q){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=[h0.resolve(h0.dirname(Y),`${_}.stx`),h0.resolve(h0.dirname(Y),_),h0.resolve(X.componentsDir||"components",`${_}.stx`),h0.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(W,""),K.lastIndex=0}return Q}async function r_($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,W;while((W=z.exec(Q))!==null){let U=W.index,q=U+W[0].length-1,_=1,B=q+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(q+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.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=O0(O,Z)}catch(E){let I=E instanceof Error?E.message:String(E);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${I}]`);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 D=await B1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+D+Q.substring(N),z.lastIndex=0}return Q}async function a_($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=n$(Q);return Q=z.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,l_),Q=o$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=Y9(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?Z9(A.tagName):A.tagName,R=c_(A.attributes),N=p_(R,Z,X),M=C0.getBuiltin(A.tagName),T=M?await zX(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=QX(S,N.clientReactive);if(Object.keys(N.events).length>0){let b=Object.entries(N.events).map(([C,d])=>`${C}="${XX(d)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${b}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let D={};for(let[k,S]of Object.entries(N.static))D[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))D[k]=S;let I=await B1(w,D,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)I=QX(I,N.clientReactive);if(Object.keys(N.events).length>0){let k=I.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([C,d])=>`${C}="${XX(d)}"`).join(" "),b=k[1].length+k[2].length;I=I.substring(0,b)+" "+S+I.substring(b)}}F=F.substring(0,A.startIndex)+I+F.substring(A.endIndex)}return F}}function QX($,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 a4($,Z,Y,X,J){if(!YX)e2(),YX=!0;let Q=await GX($,Z,Y,X,J);Q=await s_(Q,Z,Y,X,J),Q=await r_(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await a_(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=i_(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 YX=!1,l_,JX;var J9=P(()=>{b3();$X();ZX();L0();A0();l_=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"]);JX=new Map});var t4={};u(t4,{stripTypeScript:()=>BX,hasVariables:()=>FX,extractVariables:()=>r0,extractScriptFromTemplate:()=>LX,convertToCommonJS:()=>G9});import T5 from"path";import _$ from"process";function t_($){let Z=[],Y=0,X=$.split(`
|
|
4172
|
+
</script>`}),J}async function OT($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[W,U]=z,q=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of q){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=[N5.resolve(N5.dirname(Y),`${_}.stx`),N5.resolve(N5.dirname(Y),_),N5.resolve(X.componentsDir||"components",`${_}.stx`),N5.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(W,""),K.lastIndex=0}return Q}async function LT($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,W;while((W=z.exec(G))!==null){let U=W.index,q=U+W[0].length-1,_=1,B=q+1;while(B<G.length&&_>0){if(G[B]==="(")_++;else if(G[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=G.substring(q+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.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=O0(O,Z)}catch(I){let k=I instanceof Error?I.message:String(I);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 D=G.substring(U,N),E=await B1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+E+G.substring(N),z.lastIndex=0}return G}async function FT($,Z,Y,X,J,Q){let G=$;if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=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"]),W=n$(G);return G=W.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,z),G=o$(G,W.scripts),G;async function B(j,H,L,F){let O=j,V=Y9(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?Z9(w.tagName):w.tagName,N=m_(w.attributes),M={};for(let[D,E]of Object.entries(N)){if(D.startsWith("@"))continue;if(D.startsWith("__stx_")){let I=D.slice(6);M[I]=X9(E,J);continue}if(D.startsWith(":")){let I=D.slice(1),k=E==="true"?I:E;try{if(!$0(k)){if(J.debug)console.error(`Unsafe expression in :${I} binding: ${k}`);M[I]=E}else{let S=Z0(k,Object.keys(Z));M[I]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${I} binding:`,S);M[I]=E}continue}if(typeof E==="string"&&E.includes("{{")&&E.includes("}}")){let I=E.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(I)try{let k=I[1];if(!$0(k)){if(J.debug)console.error(`Unsafe expression in ${D}: ${k}`);M[D]=E}else{let S=Z0(k,Object.keys(Z));M[D]=S(...Object.values(Z))}}catch(k){if(J.debug)console.error(`Error evaluating expression for ${D}:`,k);M[D]=E}else{let k=E,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,b;while((b=S.exec(E))!==null)try{let y=b[1];if(!$0(y)){if(J.debug)console.error(`Unsafe expression in ${D}: ${y}`);continue}let f=Z0(y,Object.keys(Z))(...Object.values(Z));k=k.replace(b[0],String(f??""))}catch(y){if(J.debug)console.error(`Error evaluating expression in ${D}:`,y)}M[D]=k}}else M[D]=E}let T=await B1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var ZX=P(()=>{A0();L0();s$()});var KX={};u(KX,{processESImports:()=>GX,processComponents:()=>a4});import r4 from"fs";import h0 from"path";function p_($,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,z)=>z.toUpperCase())};for(let[G,K]of Object.entries($)){let z=G.startsWith("x-")&&!J.has(G)&&!G.startsWith("x-bind:")&&!G.startsWith("x-on:")?`:${G.slice(2)}`:G;if(z.startsWith("@")){X.events[z]=K;continue}if(z.startsWith("__stx_")){let W=Q(z.slice(6));X.serverDynamic[W]=X9(K,Y);continue}if(z.startsWith(":")){let W=Q(z.slice(1)),U=K==="true"?W:K;try{if(!$0(U)){if(Y.debug)console.error(`Unsafe expression in :${W} binding: ${U}`);X.clientReactive[W]=U;continue}let q=Object.keys(Z),B=Z0(U,q)(...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)&&!q.includes(F))){X.clientReactive[W]=U;continue}}X.serverDynamic[W]=B}catch{X.clientReactive[W]=U}continue}if(typeof K==="string"&&K.includes("{{")&&K.includes("}}")){let W=K.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(W)try{let U=W[1];if($0(U)){let _=Z0(U,Object.keys(Z))(...Object.values(Z));X.static[z]=_!=null?String(_):""}else{if(Y.debug)console.error(`Unsafe expression in ${z}: ${U}`);X.static[z]=K}}catch(U){if(Y.debug)console.error(`Error evaluating expression for ${z}:`,U);X.static[z]=K}else{let U=K,q=/\{\{\s*([\s\S]+?)\s*\}\}/g,_;while((_=q.exec(K))!==null)try{let B=_[1];if(!$0(B)){if(Y.debug)console.error(`Unsafe expression in ${z}: ${B}`);continue}let H=Z0(B,Object.keys(Z))(...Object.values(Z));U=U.replace(_[0],String(H??""))}catch(B){if(Y.debug)console.error(`Error evaluating expression in ${z}:`,B)}X.static[z]=U}continue}X.static[z]=K}return X}function c_($){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 XX($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function i_($){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(C0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function n_($){let Z=JX.get($);if(Z)return Z;let Y=new Map,X=[h0.join($,"src"),h0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=r4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let W=h0.join(Q,z.name);if(z.isDirectory()){if(z.name==="node_modules"||z.name.startsWith("."))continue;J(W,G+1)}else if(z.isFile()&&z.name.endsWith(".stx")){let U=z.name.slice(0,-4);if(!Y.has(U))Y.set(U,W);let q=U.toLowerCase();if(!Y.has(q))Y.set(q,W);let _=U.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(!Y.has(_))Y.set(_,W)}}}for(let Q of X)if(J(Q,0),Y.size>0)break;return JX.set($,Y),Y}function o_($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=h0.join(Y,"node_modules",$);try{if(r4.statSync(X).isDirectory())return X}catch{}let J=h0.dirname(Y);if(J===Y)return null;Y=J}}async function GX($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=h0.dirname(Y),K=$,z=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi;return K=K.replace(z,(W,U,q)=>{let _=/import\s+(?:(\{[^}]*\})|([A-Za-z_$][\w$]*))\s+from\s+['"]([^'"]+)['"]\s*;?\s*\n?/g,B=q,j,H=[];while((j=_.exec(q))!==null){let[L,F,O,V]=j,A=null,w=null;if(V.startsWith(".")||V.startsWith("/")){let M=h0.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=o_(V,G);if(!A&&!w)continue;let R=!1,N=(M,T)=>{Q.set(M,T),Q.set(M.toLowerCase(),T);let D=M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();Q.set(D,T),J.add(T)};if(O&&w)N(O,w),R=!0;else if(F){let M=F.slice(1,-1).split(",").map((D)=>D.trim()).filter(Boolean).map((D)=>{let E=D.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(E)return{source:E[1],local:E[2]};return{source:D,local:D}}),T=A?n_(A):null;for(let{source:D,local:E}of M){let I=null;if(w)I=w;else if(T)I=T.get(D)??T.get(D.toLowerCase())??T.get(D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(I)N(E,I),R=!0}}if(R)H.push({start:j.index,end:j.index+L.length})}if(H.length===0)return W;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 s_($,Z,Y,X,J){let Q=$;if(!Z.__importedComponents)Z.__importedComponents=new Map;let G=Z.__importedComponents,K=/@import\s*\(\s*([^)]+)\s*\)/g,z;while((z=K.exec(Q))!==null){let[W,U]=z,q=U.split(",").map((_)=>_.trim().replace(/^['"]|['"]$/g,"")).filter((_)=>_.length>0);for(let _ of q){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=[h0.resolve(h0.dirname(Y),`${_}.stx`),h0.resolve(h0.dirname(Y),_),h0.resolve(X.componentsDir||"components",`${_}.stx`),h0.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(W,""),K.lastIndex=0}return Q}async function r_($,Z,Y,X,J){let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=/@component\s*\(/g,W;while((W=z.exec(Q))!==null){let U=W.index,q=U+W[0].length-1,_=1,B=q+1;while(B<Q.length&&_>0){if(Q[B]==="(")_++;else if(Q[B]===")"){if(_--,_===0)break}B++}if(_!==0)break;let j=Q.substring(q+1,B),H=B+1,L=j.match(/^\s*['"]([^'"]+)['"]/);if(!L){z.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=O0(O,Z)}catch(E){let I=E instanceof Error?E.message:String(E);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${I}]`);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 D=await B1(F,w,R,G,Z,Y,X,K,J);Q=Q.substring(0,U)+D+Q.substring(N),z.lastIndex=0}return Q}async function a_($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=n$(Q);return Q=z.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,l_),Q=o$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=Y9(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?Z9(A.tagName):A.tagName,R=c_(A.attributes),N=p_(R,Z,X),M=C0.getBuiltin(A.tagName),T=M?await zX(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=QX(S,N.clientReactive);if(Object.keys(N.events).length>0){let b=Object.entries(N.events).map(([y,d])=>`${y}="${XX(d)}"`).join(" ");S=S.replace(/^(\s*<[a-zA-Z][a-zA-Z0-9-]*)/,`$1 ${b}`)}F=F.substring(0,A.startIndex)+S+F.substring(A.endIndex);continue}let D={};for(let[k,S]of Object.entries(N.static))D[k]=S;for(let[k,S]of Object.entries(N.serverDynamic))D[k]=S;let I=await B1(w,D,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)I=QX(I,N.clientReactive);if(Object.keys(N.events).length>0){let k=I.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([y,d])=>`${y}="${XX(d)}"`).join(" "),b=k[1].length+k[2].length;I=I.substring(0,b)+" "+S+I.substring(b)}}F=F.substring(0,A.startIndex)+I+F.substring(A.endIndex)}return F}}function QX($,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 a4($,Z,Y,X,J){if(!YX)e2(),YX=!0;let Q=await GX($,Z,Y,X,J);Q=await s_(Q,Z,Y,X,J),Q=await r_(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await a_(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=i_(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 YX=!1,l_,JX;var J9=P(()=>{b3();$X();ZX();L0();A0();l_=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"]);JX=new Map});var t4={};u(t4,{stripTypeScript:()=>BX,hasVariables:()=>FX,extractVariables:()=>r0,extractScriptFromTemplate:()=>LX,convertToCommonJS:()=>G9});import T5 from"path";import _$ from"process";function t_($){let Z=[],Y=0,X=$.split(`
|
|
4173
4173
|
`);for(let J of X){let Q=Y,G=null,K=!1;for(let z=0;z<J.length;z++){let W=J[z];if(K){K=!1;continue}if(W==="\\"){K=!0;continue}if(G){if(W===G)G=null;continue}if(W==="'"||W==='"'||W==="`"){G=W;continue}if(W==="/"&&z+1<J.length&&J[z+1]==="/")break;if(W==="{")Y++;else if(W==="}")Y--}if(Q===0){let z=J.match(/(?:const|let|var)\s+(\w+)\s*=/);if(z)Z.push(z[1]);else if(/^\s*(?:const|let|var)\s+\w+\s*;?\s*$/.test(J)){let W=J.match(/(?:const|let|var)\s+(\w+)/);if(W)Z.push(W[1])}else{let W=J.match(/(?:const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=/);if(W){let q=W[1].slice(1,-1).split(",").map((_)=>{let B=_.split(":");return(B.length>1?B[1]:B[0]).trim()}).filter((_)=>/^\w+$/.test(_));Z.push(...q)}}}}return[...new Set(Z)]}function BX($){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,z=null;for(let W=0;W<X.length;W++){let U=X[W];if(z){if(Q+=U,U===z)z=null;continue}if(U==='"'||U==="'"||U==="`"){z=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((W)=>{let U=W.trim(),q=U.startsWith("..."),_=q?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 W;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=q?"...":"";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,z=G+1,W=0,U=null;while(z<Z.length&&K>0){let B=Z[z];if(U){if(B===U)U=null;z++;continue}if(B==='"'||B==="'"||B==="`"){U=B,z++;continue}if(B==="<")W++;else if(B===">"&&W>0)W--;else if(W===0){if(B==="(")K++;else if(B===")")K--}if(K>0)z++}if(K!==0)continue;let q=Z.substring(G+1,z);if(!q.includes(":"))continue;let _=Y(q);Q.push({start:G+1,end:z,replacement:_})}for(let G=Q.length-1;G>=0;G--){let{start:K,end:z,replacement:W}=Q[G];Z=Z.substring(0,K)+W+Z.substring(z)}}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,...z]=G.split("="),W=K.split(":")[0].trim();if(z.length>0)return`${W} = ${z.join("=").trim()}`;return W}).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 r0($,Z,Y,X={}){if(!$.trim())return;let J;try{let
|
|
4175
|
+
`),Z}async function r0($,Z,Y,X={}){if(!$.trim())return;let J;try{let C=new Bun.Transpiler({loader:"ts",target:"browser",define:$1()}),v=$.replace(/^\s*import\s+\w+\s+from\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,"");v=v.replace(/^\s*import\s+['"][^'"]*\.stx['"]\s*;?\s*$/gm,""),J=C.transformSync(v)}catch{J=BX($)}let Q={exports:{}},G=Q.exports,K=_$.cwd(),z={},W=[...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 W)try{let v=T5.resolve(K,"node_modules",C),x=T5.join(v,"package.json"),g=JSON.parse(J0("fs").readFileSync(x,"utf8")),l=g.main||"index.js";if(g.exports){let s=typeof g.exports==="string"?g.exports:g.exports["."];if(typeof s==="string")l=s;else if(s?.bun)l=s.bun;else if(s?.import)l=s.import;else if(s?.default)l=s.default}z[C]=await import(T5.resolve(v,l))}catch{}let U=(C)=>{if(z[C])return z[C];return J0(C)},q=Z.props||{},_=Object.assign((C)=>{if(!C)return q;let v={};for(let[x,g]of Object.entries(C)){let l=q[x];if(l!==void 0)v[x]=l;else if(typeof g==="function")v[x]=g();else v[x]=g}return v},q),B=(C)=>{if(!C)return q;let v={...q};for(let[x,g]of Object.entries(C)){let l=g&&typeof g==="object"&&!Array.isArray(g)?g:{type:g};if(v[x]===void 0&&l.default!==void 0)v[x]=typeof l.default==="function"?l.default():l.default}return v},j=()=>Z.slots||{},H=(C,v)=>{let x={...C};for(let[g,l]of Object.entries(v))if(x[g]===void 0)if(typeof l==="function")x[g]=l();else x[g]=l;return x},L=(C)=>{let v=()=>C;return v.set=(x)=>{},v.update=(x)=>{},v},F=(C)=>{let v,x=!1;return()=>{if(!x)try{v=C(),x=!0}catch{v=void 0}return v}},O=(C)=>{},V=(C)=>C(),A=(C)=>{},w=(C)=>{},R=(C)=>{},N=()=>{let C=Z.__stxServeContext,v=Z.__stxServeSearch??C?.search??"",x=C?.path??"";return{params:Z.params??{},query:Object.fromEntries(new URLSearchParams(v)),path:x,name:"",fullPath:x+v,hash:"",matched:[]}},M=()=>({push:(C)=>{},replace:(C)=>{},back:()=>{},forward:()=>{},go:(C)=>{}}),T=(C)=>{o1(C);let v=Z.__stx_runtime_head||{},x=C||{};Z.__stx_runtime_head={...v,...x.title&&{title:x.title},meta:[...v.meta||[],...x.meta||[]],link:[...v.link||[],...x.link||[]],script:[...v.script||[],...x.script||[]],htmlAttrs:{...v.htmlAttrs||{},...x.htmlAttrs||{}},bodyAttrs:{...v.bodyAttrs||{},...x.bodyAttrs||{}}}},D=(C)=>{u4(C);let v=Y$();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},E=(C)=>({value:C}),I=(C)=>C,k=(C)=>({value:typeof C==="function"?C():C}),S=(C,v)=>{},b=(C)=>{},y=(C)=>{},d=(C)=>C?C():Promise.resolve(),f=(C)=>(v,...x)=>{},m=(C)=>{},o=(C,v)=>{},D0=(C,v)=>v,G1=()=>({value:"light"}),x0=()=>({value:!1}),b0={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:{}},X0=new Proxy(b0,{get(C,v){if(v in C)return C[v];return},set(C,v,x){return C[v]=x,!0}}),w0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},_0=console;try{let C=G9(J,Y),v=new Set(Object.keys(q)),x=Object.keys(Z).filter((t)=>!v.has(t)&&t!=="props"),g=x.map((t)=>Z[t]),l=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"]),s=[],G0=[];for(let[t,e0]of Object.entries(q)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))continue;if(l.has(t))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${t}\\b`).test(C))continue;s.push(t),G0.push(e0)}let f0=t_(C).map((t)=>`module.exports.${t} = typeof ${t} !== 'undefined' ? ${t} : module.exports.${t};`).join(`
|
|
4176
4176
|
`),y1=Z.params??{},W0=[],v1=[];for(let t=0;t<x.length;t++){if(x[t]==="params")continue;W0.push(x[t]),v1.push(g[t])}let y$=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",...s,...W0,`return (async () => {
|
|
4177
|
-
${
|
|
4177
|
+
${C}
|
|
4178
4178
|
${f0}
|
|
4179
4179
|
return module.exports
|
|
4180
|
-
})()`)(Q,G,U,q,_,B,H,L,F,O,V,A,w,R,N,M,T,D,E,I,k,S,b,
|
|
4180
|
+
})()`)(Q,G,U,q,_,B,H,L,F,O,V,A,w,R,N,M,T,D,E,I,k,S,b,y,d,f,m,j,o,D0,G1,x0,X0,w0,_0,b0.confirm,b0.alert,b0.fetch,y1,...G0,...v1);if(X.preserveExisting){for(let[t,e0]of Object.entries(y$))if(!(t in Z)||Z[t]===void 0)Z[t]=e0}else Object.assign(Z,y$);for(let[t,e0]of Object.entries(q))if(!(t in Z))Z[t]=e0}catch(C){if(_$.env.STX_DEBUG){let v=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: ${v}`)}try{await XB(J,Z,Y)}catch(v){if(_$.env.STX_DEBUG){let x=v instanceof Error?v.message:String(v);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${x}`)}}}}function G9($,Z){let Y=Z?T5.dirname(Z):_$.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 z of X[Q])if(z==="{")K++;else if(z==="}")K--;if(K<=0)break}}Q++;continue}if(G.startsWith("definePageMeta(")){let K=0,z=!1;for(let W=Q;W<X.length&&!z;W++){let U=null,q=!1,_=X[W];for(let B=0;B<_.length;B++){let j=_[B];if(q){q=!1;continue}if(j==="\\"){q=!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=W+1,z=!0;break}}}}if(!z)Q=X.length;continue}if(G.startsWith("import ")){let K=G.match(/^import\s+(\w+)\s+from\s+['"](.+)['"]/),z=G.match(/^import\s+\{([^}]+)\}\s+from\s+['"](.+)['"]/),W=G.match(/^import\s+['"](.+)['"]/),U=(q)=>{if(q.startsWith("."))return T5.resolve(Y,q);return q};if(K){let[,q,_]=K,B=U(_);J.push(`const ${q} = await import('${B}')`),J.push(`module.exports.${q} = ${q};`)}else if(z){let[,q,_]=z,B=q.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(W){let q=U(W[1]);J.push(`await import('${q}')`)}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=WX(X,Q),{type:z,name:W,value:U}=K;J.push(`${z} ${W} = ${U};`),J.push(`module.exports.${W} = ${W};`),Q=K.nextIndex}else if(G.startsWith("export function ")||G.startsWith("export async function ")){let K=Q9(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=WX(X,Q),{type:z,name:W,value:U}=K;J.push(`${z} ${W} = ${U};`),J.push(`module.exports.${W} = ${W};`),Q=K.nextIndex}else if(G.startsWith("function ")||G.startsWith("async function ")){let K=Q9(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"),z=[...X];z[Q]=K;let W=Q9(z,Q);if(J.push(W.functionCode),W.name)J.push(`module.exports.default = ${W.name};`);Q=W.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 z=K[1],W=X[Q].replace(/^export\s+/,""),U=0,q=Q;for(;q<X.length;q++){let _=X[q];for(let B of _)if(B==="{")U++;else if(B==="}")U--;if(q>Q)W+=`
|
|
4182
4182
|
`+_;if(U<=0&&q>=Q)break}J.push(W),J.push(`module.exports.${z} = ${z};`),Q=q+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 e_(J.join(`
|
|
4183
4183
|
`),Y)}function e_($,Z){let Y=$.length,X="",J=0,Q=null,G=!1,K=!1,z=0;while(J<Y){let W=$[J],U=$[J+1];if(G){if(X+=W,W===`
|
|
@@ -4187,7 +4187,7 @@ ${w}`,nextIndex:O}}}}throw Error(`Failed to parse variable declaration: ${Y}`)}l
|
|
|
4187
4187
|
${$[z]}`,z++;else break}return K=K.trim().replace(/;$/,""),{type:J,name:Q,value:K,nextIndex:z}}function Q9($,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(ZB(Y)){let K=YB($,Z,Q);Q=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:J,functionCode:Q,nextIndex:G}}function UX($){let Z=$.trim();if(Z.startsWith("{"))return V0(Z,"{","}",0)===-1;if(Z.startsWith("["))return V0(Z,"[","]",0)===-1;return!OX(Z)}function OX($){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 ZB($){let Z=$.indexOf("{");if(Z===-1)return!0;return V0($,"{","}",Z)===-1}function qX($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!OX(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 YB($,Z,Y){let X=Y,J=Z+1;while(J<$.length){let Q=X.indexOf("{");if(Q!==-1){if(V0(X,"{","}",Q)!==-1)break}let G=$[J];X+=`
|
|
4190
|
-
${G}`,J++}return{functionCode:X,nextIndex:J}}function _X($,Z){let Y=e($,Z)??e(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{..._$.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 XB($,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 z=K.trim().replace(/;$/,""),W=_X(z,Z);if(W!==void 0)Z[G]=W}catch(z){console.warn(`Failed to parse export ${G} in fallback:`,z)}}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 z=K.trim().replace(/;$/,""),W=_X(z,Z);if(W!==void 0)Z[G]=W}catch{}}}function LX($){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 FX($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var B$=P(()=>{X$();Q5();A0()});var MX={};u(MX,{processLoops:()=>K9});function GB($,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,z=1,W=K+1;while(W<X.length&&z>0){if(X[W]==="(")z++;else if(X[W]===")"){if(z--,z===0)break}W++}if(z!==0)continue;let U=X.substring(K+1,W),q=W+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=O0(L,Z),O=JSON.stringify(F),V=`@component('${B}', ${O})`;Q.push({start:G,end:q,replacement:V})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:z,replacement:W}=Q[G];X=X.substring(0,K)+W+X.substring(z)}return X}function e4($,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,z=1,W=K+1,U=null,q=!1;while(W<X.length&&z>0){let j=X[W];if(q){q=!1,W++;continue}if(j==="\\"&&U){q=!0,W++;continue}if(U){if(j===U)U=null;W++;continue}if(j==='"'||j==="'"||j==="`"){U=j,W++;continue}if(j==="(")z++;else if(j===")"){if(z--,z===0)break}W++}if(z!==0)break;let _=X.substring(K+1,W),B=Y(_);X=X.substring(0,G)+B+X.substring(W+1)}return X}function KB($,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);u5(Q);let W=Z0(Q,G)(...K),U=JSON.stringify(W),q=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${q}"`}catch(G){return X}}),Y}function zB($,Z){let Y=$;return Y=e4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?$7:""}catch{return""}}),Y=e4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?Z7:""}catch{return""}}),Y}function WB($){let Z=$;return Z=Z.replace(/@break(?!\()/g,$7),Z=Z.replace(/@continue(?!\()/g,Z7),Z}function VX($){let Z=$.includes($7),Y=Z?$.substring(0,$.indexOf($7)):$;return{hasBreak:Z,content:Y}}function wX($){let Z=$.includes(Z7),Y=Z?$.substring(0,$.indexOf(Z7)):$;return{hasContinue:Z,content:Y}}function RX($){let Z=$;return Z=e4(Z,"@break",(Y)=>{let X=Y.trim();if(!m5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=e4(Z,"@continue",(Y)=>{let X=Y.trim();if(!m5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function UB($){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,q)=>U.pos-q.pos);let K=[],z=0;for(let U of X)z+=U.delta,K.push({pos:U.pos,depth:z});function W(U){let q=0,_=K.length-1,B=0;while(q<=_){let j=q+_>>1;if(K[j].pos<=U)B=K[j].depth,q=j+1;else _=j-1}return B}while((Y=Z.exec($))!==null){if(W(Y.index)>0)continue;let U=Y.index,q=Y.index+Y[0].length-1,_=1,B=q+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(q+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($),b=N.exec($);if(!b)break;if(S&&S.index<b.index)A++,w=S.index+S[0].length;else{if(A--,A===0){M=b.index;break}w=b.index+11}}if(M===-1)continue;let T=$.substring(V,M),D=M+11,E=-1,I=0,k=0;while(k<T.length){let S=T.indexOf("@",k);if(S===-1)break;let b=T.substring(S);if(/^@forelse\s*\(/.test(b))I++,k=S+1;else if(b.startsWith("@endforelse"))I--,k=S+11;else if(I===0&&b.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){E=S;break}k=S+1}else k=S+1}if(E===-1)continue;return{start:U,end:D,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,E),emptyContent:T.substring(E+6)}}return null}function AX($,Z){let Y=$;while(!0){let X=UB(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:z,emptyContent:W}=X;try{let U;if($0(G))U=Z0(G,Object.keys(Z))(...Object.values(Z));else U=e(G,Z);let q;if(!Array.isArray(U)||U.length===0)q=W;else q=`@foreach (${G} as ${K})${z}@endforeach`;Y=Y.substring(0,J)+q+Y.substring(Q)}catch(U){let q=U instanceof Error?U.message:String(U),_=r("Forelse",`Error in @forelse(${G} as ${K}): ${q}`,p.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function K9($,Z,Y,X){let J=$;J=AX(J,Z);function Q(z){let W=/@foreach\s*\(/g,U;while((U=W.exec(z))!==null){let q=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<z.length&&B>0){if(z[j]==="(")B++;else if(z[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=z.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=q,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<z.length){M.lastIndex=N,T.lastIndex=N;let D=M.exec(z),E=T.exec(z);if(!E)break;if(D&&D.index<E.index)R++,N=D.index+D[0].length;else{if(R--,R===0){let I=z.substring(w,E.index),k=E.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:I}}N=E.index+11}}}return null}function G(z,W){let U=z;while(!0){let q=Q(U);if(!q)break;let{start:_,end:B,arrayExpr:j,itemVar:H,content:L}=q;try{let F=j.trim(),O;if($0(F))O=Z0(F,Object.keys(W))(...Object.values(W));else O=e(F,W);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 E=r("Foreach",`Error in @foreach: ${F} is not iterable`,p.TYPE_ERROR);U=U.substring(0,_)+E+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??QB,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let E=w.split("=>").map((I)=>I.trim());if(E.length===2&&E[0]&&E[1])R=E[0],N=E[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let E=w.split(",").map((I)=>I.trim());if(E.length===2&&E[0]&&E[1])N=E[0],R=E[1],M=!0;else N=w}else N=w;let T="",D=O;for(let E=0;E<D.length;E++){let I=D[E],k={index:E,iteration:E+1,first:E===0,last:E===D.length-1,count:D.length},S={...W,loop:k,$loop:k};if(N.startsWith("[")&&N.endsWith("]")){let f=N.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(I))f.forEach((m,o)=>{if(m)S[m]=I[o]});else S[N]=I}else S[N]=I;if(R)if(!M&&V&&Array.isArray(I)&&I.length===2)S[R]=I[0],S[N]=I[1];else S[R]=E;let b=zB(L,S),
|
|
4190
|
+
${G}`,J++}return{functionCode:X,nextIndex:J}}function _X($,Z){let Y=e($,Z)??e(`(${$})`,Z);if(Y!==void 0)return Y;if(!/\bprocess\b/.test($))return;let X={...Z,process:Object.freeze({env:{..._$.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 XB($,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 z=K.trim().replace(/;$/,""),W=_X(z,Z);if(W!==void 0)Z[G]=W}catch(z){console.warn(`Failed to parse export ${G} in fallback:`,z)}}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 z=K.trim().replace(/;$/,""),W=_X(z,Z);if(W!==void 0)Z[G]=W}catch{}}}function LX($){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 FX($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var B$=P(()=>{X$();Q5();A0()});var MX={};u(MX,{processLoops:()=>K9});function GB($,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,z=1,W=K+1;while(W<X.length&&z>0){if(X[W]==="(")z++;else if(X[W]===")"){if(z--,z===0)break}W++}if(z!==0)continue;let U=X.substring(K+1,W),q=W+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=O0(L,Z),O=JSON.stringify(F),V=`@component('${B}', ${O})`;Q.push({start:G,end:q,replacement:V})}catch{continue}}for(let G=Q.length-1;G>=0;G--){let{start:K,end:z,replacement:W}=Q[G];X=X.substring(0,K)+W+X.substring(z)}return X}function e4($,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,z=1,W=K+1,U=null,q=!1;while(W<X.length&&z>0){let j=X[W];if(q){q=!1,W++;continue}if(j==="\\"&&U){q=!0,W++;continue}if(U){if(j===U)U=null;W++;continue}if(j==='"'||j==="'"||j==="`"){U=j,W++;continue}if(j==="(")z++;else if(j===")"){if(z--,z===0)break}W++}if(z!==0)break;let _=X.substring(K+1,W),B=Y(_);X=X.substring(0,G)+B+X.substring(W+1)}return X}function KB($,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);u5(Q);let W=Z0(Q,G)(...K),U=JSON.stringify(W),q=Buffer.from(U,"utf8").toString("base64");return`__stx_${J}="${q}"`}catch(G){return X}}),Y}function zB($,Z){let Y=$;return Y=e4(Y,"@break",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?$7:""}catch{return""}}),Y=e4(Y,"@continue",(X)=>{try{let Q=`!!(${X.trim()})`,G;if($0(Q)){let K=Z0(Q,Object.keys(Z));G=Boolean(K(...Object.values(Z)))}else G=Boolean(e(Q,Z));return G?Z7:""}catch{return""}}),Y}function WB($){let Z=$;return Z=Z.replace(/@break(?!\()/g,$7),Z=Z.replace(/@continue(?!\()/g,Z7),Z}function VX($){let Z=$.includes($7),Y=Z?$.substring(0,$.indexOf($7)):$;return{hasBreak:Z,content:Y}}function wX($){let Z=$.includes(Z7),Y=Z?$.substring(0,$.indexOf(Z7)):$;return{hasContinue:Z,content:Y}}function RX($){let Z=$;return Z=e4(Z,"@break",(Y)=>{let X=Y.trim();if(!m5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=e4(Z,"@continue",(Y)=>{let X=Y.trim();if(!m5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function UB($){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,q)=>U.pos-q.pos);let K=[],z=0;for(let U of X)z+=U.delta,K.push({pos:U.pos,depth:z});function W(U){let q=0,_=K.length-1,B=0;while(q<=_){let j=q+_>>1;if(K[j].pos<=U)B=K[j].depth,q=j+1;else _=j-1}return B}while((Y=Z.exec($))!==null){if(W(Y.index)>0)continue;let U=Y.index,q=Y.index+Y[0].length-1,_=1,B=q+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(q+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($),b=N.exec($);if(!b)break;if(S&&S.index<b.index)A++,w=S.index+S[0].length;else{if(A--,A===0){M=b.index;break}w=b.index+11}}if(M===-1)continue;let T=$.substring(V,M),D=M+11,E=-1,I=0,k=0;while(k<T.length){let S=T.indexOf("@",k);if(S===-1)break;let b=T.substring(S);if(/^@forelse\s*\(/.test(b))I++,k=S+1;else if(b.startsWith("@endforelse"))I--,k=S+11;else if(I===0&&b.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){E=S;break}k=S+1}else k=S+1}if(E===-1)continue;return{start:U,end:D,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,E),emptyContent:T.substring(E+6)}}return null}function AX($,Z){let Y=$;while(!0){let X=UB(Y);if(!X)break;let{start:J,end:Q,arrayExpr:G,itemVar:K,foreachContent:z,emptyContent:W}=X;try{let U;if($0(G))U=Z0(G,Object.keys(Z))(...Object.values(Z));else U=e(G,Z);let q;if(!Array.isArray(U)||U.length===0)q=W;else q=`@foreach (${G} as ${K})${z}@endforeach`;Y=Y.substring(0,J)+q+Y.substring(Q)}catch(U){let q=U instanceof Error?U.message:String(U),_=r("Forelse",`Error in @forelse(${G} as ${K}): ${q}`,p.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function K9($,Z,Y,X){let J=$;J=AX(J,Z);function Q(z){let W=/@foreach\s*\(/g,U;while((U=W.exec(z))!==null){let q=U.index,_=U.index+U[0].length-1,B=1,j=_+1,H=-1;while(j<z.length&&B>0){if(z[j]==="(")B++;else if(z[j]===")"){if(B--,B===0){H=j;break}}j++}if(H===-1)continue;let L=z.substring(_+1,H),F=L.indexOf(" as ");if(F===-1)continue;let O=q,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<z.length){M.lastIndex=N,T.lastIndex=N;let D=M.exec(z),E=T.exec(z);if(!E)break;if(D&&D.index<E.index)R++,N=D.index+D[0].length;else{if(R--,R===0){let I=z.substring(w,E.index),k=E.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:I}}N=E.index+11}}}return null}function G(z,W){let U=z;while(!0){let q=Q(U);if(!q)break;let{start:_,end:B,arrayExpr:j,itemVar:H,content:L}=q;try{let F=j.trim(),O;if($0(F))O=Z0(F,Object.keys(W))(...Object.values(W));else O=e(F,W);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 E=r("Foreach",`Error in @foreach: ${F} is not iterable`,p.TYPE_ERROR);U=U.substring(0,_)+E+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??QB,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let E=w.split("=>").map((I)=>I.trim());if(E.length===2&&E[0]&&E[1])R=E[0],N=E[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let E=w.split(",").map((I)=>I.trim());if(E.length===2&&E[0]&&E[1])N=E[0],R=E[1],M=!0;else N=w}else N=w;let T="",D=O;for(let E=0;E<D.length;E++){let I=D[E],k={index:E,iteration:E+1,first:E===0,last:E===D.length-1,count:D.length},S={...W,loop:k,$loop:k};if(N.startsWith("[")&&N.endsWith("]")){let f=N.slice(1,-1).split(",").map((m)=>m.trim());if(Array.isArray(I))f.forEach((m,o)=>{if(m)S[m]=I[o]});else S[N]=I}else S[N]=I;if(R)if(!M&&V&&Array.isArray(I)&&I.length===2)S[R]=I[0],S[N]=I[1];else S[R]=E;let b=zB(L,S),y=wX(b);if(y.hasContinue){T+=y.content;continue}let d=VX(b);if(d.hasBreak){T+=d.content;break}if(b=AX(b,S),b=G(b,S),b=c1(b,S,Y),b=WB(b),d=VX(b),d.hasBreak){T+=d.content;break}if(y=wX(b),y.hasContinue){T+=y.content;continue}b=Z1(b,S,Y),b=KB(b,S),b=GB(b,S),T+=b}U=U.substring(0,_)+T+U.substring(B)}catch(F){let O=r("Foreach",`Error in @foreach(${j.trim()} as ${H.trim()}): ${F instanceof Error?F.message:String(F)}`,p.EVALUATION_ERROR);U=U.substring(0,_)+O+U.substring(B)}}return U}J=G(J,Z),J=TX(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??JB;return J=BB(J,Z,K),J}function NX($){return m5($)}function TX($,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,z=K+G[0].length-1,W=V0(J,"(",")",z);if(W===-1)break;let U=J.slice(z+1,W),q=W+1,_=f4(J.slice(K),"for","endfor");if(_.length===0)break;let B=_[0].content,j=K+_[0].end;if(!NX(U)){let H=r("For",`Unsafe expression in @for: ${U}`,p.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=qB(U),L=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(H.length>0&&L){let R=_B({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=RX(V);let w=Function(...F,`
|
|
4191
4191
|
let result = '';
|
|
4192
4192
|
for (${U}) {
|
|
4193
4193
|
result += \`${V}\`;
|
|
@@ -4244,14 +4244,14 @@ ${OB($).split(",").map((z)=>z.trim()).filter(Boolean).map((z)=>` try { __scopeR
|
|
|
4244
4244
|
} finally {
|
|
4245
4245
|
if (typeof window !== 'undefined') window.__STX_CURRENT_ELEMENT__ = __stxPrevEl;
|
|
4246
4246
|
}
|
|
4247
|
-
})();`}function FB($,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 sT(){kX.clear()}function VB($){if($.__onceStore instanceof Set)return $.__onceStore;return kX}async function U9($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||z0.join(z0.dirname(Y),"partials");if(G&&!z0.isAbsolute(G))G=z0.resolve(process.cwd(),G);let K=jB($,"@partial","@include"),z=VB(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(z.has(O))return"";return z.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=W(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=W9(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),D=T.match(/^\s*['"]([^'"]+)['"]/);if(!D){L.lastIndex=w;continue}let E=D[1],I=T.substring(D[0].length),k,S=W9(I,0);if(S!==-1)k=I.substring(S+1).trim();try{let b=`Boolean(${M})`,
|
|
4248
|
-
`;continue}if(D0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (B$(),t4));await X0(o,D,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!D0&&!
|
|
4247
|
+
})();`}function FB($,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 sT(){kX.clear()}function VB($){if($.__onceStore instanceof Set)return $.__onceStore;return kX}async function U9($,Z,Y,X,J,Q=new Set){let G=X.partialsDir||z0.join(z0.dirname(Y),"partials");if(G&&!z0.isAbsolute(G))G=z0.resolve(process.cwd(),G);let K=jB($,"@partial","@include"),z=VB(Z);K=K.replace(/@once([\s\S]*?)@endonce/g,(j,H,L)=>{let F=H.trim(),O=`${Y}:${F}`;if(z.has(O))return"";return z.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=W(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=W9(R,0);if(N===-1){L.lastIndex=w;continue}let M=R.substring(0,N).trim(),T=R.substring(N+1).trim(),D=T.match(/^\s*['"]([^'"]+)['"]/);if(!D){L.lastIndex=w;continue}let E=D[1],I=T.substring(D[0].length),k,S=W9(I,0);if(S!==-1)k=I.substring(S+1).trim();try{let b=`Boolean(${M})`,y;if($0(b)){let m=Z0(b,Object.keys(Z));y=Boolean(m(...Object.values(Z)))}else y=Boolean(e(b,Z));let d=H?!y:y,f="";if(d){let m=W(E,G,Y);if(m&&await Bun.file(m).exists())J.add(m);f=`@include('${E}'${k?`, ${k}`:""})`}K=K.substring(0,O)+f+K.substring(w),L.lastIndex=0}catch(b){let y=b instanceof Error?b.message:String(b),d=Q0("Include",`Error evaluating ${j} condition: ${y}`,Y,$,O);K=K.substring(0,O)+d+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,D]=R;try{let E,I=M.trim();if($0(I))E=Z0(I,Object.keys(Z))(...Object.values(Z));else E=e(I,Z);let k="";if(Array.isArray(E)&&E.length>0)for(let S of E){let b={...Z,[T]:S},y=await q(N,b,$,L);k+=y}else if(D)k=await q(D,{},$,L);K=K.substring(0,L)+k+K.substring(V+1),j.lastIndex=0}catch(E){let I=E instanceof Error?E.message:String(E);K=K.substring(0,L)+Q0("Each",`Error in @each: ${I}`,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,D=M.match(/^\s*,\s*\{/);if(D){M=M.slice(D[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 E,I=M.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(I)E=I[1];try{let k=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=O0(T,Z)}catch(y){let d=y instanceof Error?y.message:String(y);if(X.debug){let f=Q0("Include",`Error parsing includeFirst variables: ${d}`,Y,$,L,w);K=K.replace(w,()=>f)}else K=K.replace(w,()=>E||"");continue}let b=!1;for(let y of k){let d=W(y,G,Y);if(!d)continue;if(await i(d)){let f=await q(y,S,$,L);K=K.replace(w,()=>f),b=!0;break}}if(!b)if(E!==void 0)K=K.replace(w,()=>E);else if(X.debug){let y=Q0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,w);K=K.replace(w,()=>y)}else K=K.replace(w,"")}catch(k){let S=k instanceof Error?k.message:String(k),b=Q0("Include",`Error processing @includeFirst: ${S}`,Y,$,L,w);K=K.replace(w,()=>b)}j.lastIndex=0}}function W(j,H,L){try{let F=j;if(!j.endsWith(".stx"))F=`${j}.stx`;let O=z0.resolve(H),V=z0.resolve(z0.dirname(L)),A;if(!F.startsWith("./")&&!F.startsWith("../"))A=z0.resolve(H,F);else A=z0.resolve(V,F);let w=z0.normalize(A),R=w.startsWith(O+z0.sep)||w===O,N=w.startsWith(V+z0.sep)||w===V,M=!1,T=z0.dirname(V);if(w.startsWith(T+z0.sep)){if(!z0.relative(T,w).split(z0.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=z0.resolve(Y);Q.add(U);async function q(j,H={},L,F){let O=W(j,G,Y);if(!O)return Q0("Include",`Could not resolve path for include: ${j}`,Y,L,F);let V=z0.resolve(O);if(Q.has(V)){let A=[...Q,V].map((w)=>z0.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(f){let m=f instanceof Error?f.message:String(f);return Q0("Include",`Error loading include file ${j}: ${m}`,Y,L,F)}if(A&&A.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (E3(),D3));A=f(A,Z)}if(A&&(X.debug||!a5()&&!w4()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (k3(),d2));f(A,O)}catch{}let w=A;try{let{processESImports:f}=await Promise.resolve().then(() => (J9(),KX));await f(A,Z,O,X,J)}catch(f){if(X.debug)console.warn(`[stx] partial ES import extraction skipped for ${O}:`,f instanceof Error?f.message:f)}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 D={...Z};for(let[f,m]of Object.entries(H))D[f]=m;let E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,I=[...A.matchAll(E)],k="",S=null;for(let f of I){let m=f[1]||"",o=f[2]||"",D0=m.includes("server"),G1=a1(m),x0="";try{let{extractAndStripCssImports:X0,renderVendorStyleTags:w0}=await Promise.resolve().then(() => (j$(),EX)),_0=X0(o,{filePath:O,projectRoot:process.cwd()});o=_0.code,x0=w0(_0.styles)}catch(X0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}if(G1&&o.trim())o=t1(o);if(!D0)try{let{hasUserImports:X0,bundleClientScript:w0}=await Promise.resolve().then(() => (l$(),m$));if(X0(o))o=await w0(o,O,{projectRoot:process.cwd()})}catch(X0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}let b0=HB(o);if(b0&&!D0){S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++DX}`;let X0=W1(o),w0=LB(X0,S);k+=`${x0}<script data-stx-scoped>${w0}</script>
|
|
4248
|
+
`;continue}if(D0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (B$(),t4));await X0(o,D,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!D0&&!b0){let X0=m.replace(/\bclient\b/i,"").trim();S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++DX}`;let w0=W1(o),_0=`
|
|
4249
4249
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
4250
4250
|
window.stx._scopes['${S}'] = { __destroyCallbacks: __destroyHooks };
|
|
4251
|
-
`,
|
|
4252
|
-
`}}if(S){let f=FB(w,S);if(w=f.html,f.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${f.mergedIntoExisting}']`),S=f.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await U9(w,D,O,X,J,Q);let{processLoops:b}=await Promise.resolve().then(() => (z9(),MX)),
|
|
4253
|
-
`+T;if(k)
|
|
4254
|
-
`+k;return
|
|
4251
|
+
`,C=IX(w0,_0);k+=`${x0}<script data-stx-scoped${X0?` ${X0}`:""}>${C}</script>
|
|
4252
|
+
`}}if(S){let f=FB(w,S);if(w=f.html,f.mergedIntoExisting)k=k.replace(`window.stx._scopes['${S}']`,`window.stx._scopes['${f.mergedIntoExisting}']`),S=f.mergedIntoExisting}if(w.includes("@include")||w.includes("@partial"))w=await U9(w,D,O,X,J,Q);let{processLoops:b}=await Promise.resolve().then(() => (z9(),MX)),y=b(w,D,O);y=c1(y,D,O);let d=K5(A);if(y=Z1(y,D,O,{forceSignals:d}),T)y+=`
|
|
4253
|
+
`+T;if(k)y+=`
|
|
4254
|
+
`+k;return y}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=W9(N,0);if(M!==-1)R=N.substring(M+1).trim();let T={};if(R)try{T=O0(R,Z)}catch(E){let I=E instanceof Error?E.message:String(E);K=K.replace(O,Q0("Include",`Error parsing include variables for ${w}: ${I}`,Y,$,j)),_.lastIndex=0;continue}let D=await q(w,T,$,j);K=K.substring(0,j)+D+K.substring(F),_.lastIndex=0}return K}function q9($,Z){let Y=$;function X(J,Q,G,K){let z=J,W=!0;while(W){W=!1;let U=new RegExp(`@${Q}\\(['"]([^'"]+)['"]\\)`),q=z.match(U);if(!q||q.index===void 0)break;let _=q.index,B=q[1],j=_+q[0].length,H=new RegExp(`@${Q}\\(`),L=new RegExp(`@${G}(?![a-z])`),F=1,O=j,V=-1;while(F>0&&O<z.length){let w=z.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=z.slice(j,V);if(!Z[B])Z[B]=[];if(K)Z[B].unshift(A);else Z[B].push(A);z=z.substring(0,_)+z.substring(V+`@${G}`.length),W=!0}return z}return Y=X(Y,"push","endpush",!1),Y=X(Y,"prepend","endprepend",!0),Y}function _9($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
|
|
4255
4255
|
`)})}var DX=0,oT,kX;var SX=P(()=>{h4();Y1();z5();A0();L0();oT=new i5(500),kX=new Set});import*as B9 from"path";async function bX($,Z,Y=""){if(B9.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 CX($,Z,Y,"@js","@endjs")}async function PX($,Z,Y=""){if(B9.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 CX($,Z,Y,"@ts","@endts")}async function CX($,Z,Y,X,J){let Q=$,G=f1(`${X}([\\s\\S]*?)${J}`,"g"),K=[],z;while((z=G.exec($))!==null)K.push({fullMatch:z[0],content:z[1]||"",index:z.index});for(let{fullMatch:W,content:U,index:q}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(y0.isAbsolute(H))O=H,J.add(H);else O=a
|
|
|
13416
13416
|
${z}`,q(z)}catch(O){return n0.log(O instanceof Error?O:Error(String(O)),{layoutPath:H,filePath:Y},"error"),`[Error processing layout: ${O instanceof Error?O.message:String(O)}]`}return q(await rQ(z,Z,Y,G,J))}function XO($,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 JO($,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 QO($,Z){await j5(()=>mX($,Z),void 0,(Y)=>{n0.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function GO($,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:z}=await Promise.resolve().then(() => (B$(),t4));await z(G,Z,Y,{preserveExisting:!0})}catch(z){let W=z instanceof Error?z:Error(String(z));n0.log(W,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${W.message}`)}}}async function KO($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (Y1(),d8));return X($,Z,{skipServer:!0})}catch(X){let J=X instanceof Error?X:Error(String(X));return n0.log(J,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${J.message}`),$}}async function rQ($,Z,Y,X,J){let Q=$,G=X;if(await GO(Q,Z,Y),Q=await KO(Q,Z,Y),Q=await bX(Q,Z,Y),Q=await PX(Q,Z,Y),Q=await F2(Q,Z,Y,G),K5(Q))Q=M9(Q,Z),Q=E9(Q,Z);Q=D9(Q);let{processStreamDirectives:K}=await Promise.resolve().then(() => (E3(),D3));Q=K(Q,Z),Q=K9(Q,Z,Y,G),Q=await a4(Q,Z,Y,G,J),Q=await rX(Q,Z,Y,G,J),Q=F8(Q,Z,Y,G);let{processDeferDirectives:z}=await Promise.resolve().then(() => PJ);Q=z(Q,Z,Y);let{processTeleportDirectives:W}=await Promise.resolve().then(() => yJ);Q=W(Q,Z,Y);let{processTransitionDirectives:U,processTransitionAttributes:q}=await Promise.resolve().then(() => gJ);Q=U(Q,Z,Y),Q=q(Q);let{processErrorBoundaryDirectives:_}=await Promise.resolve().then(() => dJ);Q=_(Q,Z,Y);let{processSuspenseDirectives:B}=await Promise.resolve().then(() => uJ);Q=B(Q,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => cJ);Q=j(Q,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => nJ);Q=H(Q,Z,Y);let{processVirtualListDirectives:L,processVirtualGridDirectives:F,processInfiniteListDirectives:O}=await Promise.resolve().then(() => (eJ(),tJ));Q=L(Q,Z,Y),Q=F(Q,Z,Y),Q=O(Q,Z,Y);let{processPartialHydrationDirectives:V,processStaticDirectives:A}=await Promise.resolve().then(() => (jQ(),BQ));Q=V(Q,Z,Y),Q=A(Q);let{processComputedDirectives:w,processWatchDirectives:R}=await Promise.resolve().then(() => (DQ(),MQ));Q=w(Q,Z,Y),Q=R(Q,Z,Y);let{processFormValidationDirectives:N}=await Promise.resolve().then(() => (bQ(),SQ));Q=N(Q,Z,Y);let{processHeadDirective:M,processTitleDirective:T,processMetaDirective:D,resetHead:E}=await Promise.resolve().then(() => (X$(),j3));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)E();let I=M(Q);if(Q=I.content,I.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${I.headContent}
|
|
13417
13417
|
`;if(Q=T(Q,Z),Q=D(Q,Z),Q=dX(Q),Q=z3(Q,Z),Q=O2(Q),Q=vX(Q),Q=await U9(Q,Z,Y,G,J),Q=await a4(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=S9(Q),Q=c1(Q,Z,Y),Q=W3(Q,Z),Q=U3(Q,Z),Q=G$(Q,Z),Q=O3(Q,Z),Q=L3(Q,Z),Q=await aY(Q,Z,Y,G),Q=await t7(Q,Z,Y),Q=await N3(Q,Z,Y,G),Q=h7(Q,Z,Y,G),Q=HY(Q,Z,Y,G),Q=OY(Q,Z,Y),Q=LY(Q,Z,Y,G),Q=q2(Q,Z,Y,G),Q=V7(Q,Z),Q=w7(Q),Q=DJ(Q),!G.skipEventDirectives)Q=pY(Q,Z,Y);if(Q=sY(Q,Z,Y),G.debug){let x=/\bx-data\s*=/.test(Q),g=F7($);if(x&&g)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=cX(Q,Z),Q=await Z1(Q,Z,Y),Q=EJ(Q),Q=IJ(Q),Q=fY(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => yQ);Q=k(Q);let S=Z.__originalFilePath||Y,b=w$(Z);if(Q=await I9(Q,G,S,b),Q=await gX(Q,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (w8(),V8));Q=await g(Q,{publicDir:x})}if(G.seo?.enabled)Q=FY(Q,Z,G);let
|
|
13419
|
+
Prefer signals (state/derived/effect) for new components.`)}Q=cX(Q,Z),Q=await Z1(Q,Z,Y),Q=EJ(Q),Q=IJ(Q),Q=fY(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => yQ);Q=k(Q);let S=Z.__originalFilePath||Y,b=w$(Z);if(Q=await I9(Q,G,S,b),Q=await gX(Q,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (w8(),V8));Q=await g(Q,{publicDir:x})}if(G.seo?.enabled)Q=FY(Q,Z,G);let y=(x,g)=>{if(!g)return x;if(/<\/head>/i.test(x))return x.replace(/<\/head>/i,`${g}
|
|
13420
13420
|
</head>`);if(/<head\b[^>]*>/i.test(x))return x.replace(/(<head\b[^>]*>)/i,`$1
|
|
13421
13421
|
${g}`);if(/<html\b[^>]*>/i.test(x))return x.replace(/(<html\b[^>]*>)/i,`$1
|
|
13422
13422
|
<head>
|
|
13423
13423
|
${g}
|
|
13424
|
-
</head>`);return x},{renderHead:d,getHead:f}=await Promise.resolve().then(() => (X$(),j3)),m=Z.__stx_runtime_head,o=m&&(m.title||m.meta?.length||m.link?.length)?m:f();if(o.title||o.meta?.length||o.link?.length){let x=d(o);if(x)Q=
|
|
13424
|
+
</head>`);return x},{renderHead:d,getHead:f}=await Promise.resolve().then(() => (X$(),j3)),m=Z.__stx_runtime_head,o=m&&(m.title||m.meta?.length||m.link?.length)?m:f();if(o.title||o.meta?.length||o.link?.length){let x=d(o);if(x)Q=y(Q,x)}if(I.headContent)Q=y(Q,I.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=U2(Q,G.csp,Z);if(G.analytics?.enabled)Q=H8(Q,G);if(G.heatmap?.enabled)Q=r8(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:x}=await Promise.resolve().then(() => (oQ(),nQ));Q=x(Q,G)}let D0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),G1=/\bSTX\.\w+/.test(Q),x0=/window\.STX\s*=/.test(Q);if(D0&&G1&&!x0){let g=`<script data-stx-scoped>
|
|
13425
13425
|
${CY()}
|
|
13426
|
-
</script>`;if(Q.includes("</head>")){let l=Q.indexOf("</head>"),G0=Q.slice(0,l).indexOf("<script");if(G0!==-1){let
|
|
13426
|
+
</script>`;if(Q.includes("</head>")){let l=Q.indexOf("</head>"),G0=Q.slice(0,l).indexOf("<script");if(G0!==-1){let E0=Q.slice(0,G0),f0=Q.slice(G0);Q=E0+g+`
|
|
13427
13427
|
`+f0}else Q=Q.replace("</head>",`${g}
|
|
13428
13428
|
</head>`)}else if(Q.includes("<body"))Q=Q.replace(/<body([^>]*)>/,`<body$1>
|
|
13429
13429
|
${g}`);else Q=g+`
|
|
13430
|
-
`+Q}{let x=/<script\s+server\b[^>]*>/gi,g,l=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,G0=ZO(Q,s);if(G0===-1)continue;let
|
|
13430
|
+
`+Q}{let x=/<script\s+server\b[^>]*>/gi,g,l=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,G0=ZO(Q,s);if(G0===-1)continue;let E0=G0+9;while(E0<Q.length&&/\s/.test(Q[E0]))E0++;l.push({start:g.index,end:E0}),x.lastIndex=E0}for(let s=l.length-1;s>=0;s--){let{start:G0,end:E0}=l[s];Q=Q.substring(0,G0)+Q.substring(E0)}}let b0=X7(Q,Y);if(b0.hasScoped)Q=b0.html;let X0=Z.__stx_event_bindings||[],w0=!1,_0=[],C=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:v}=await Promise.resolve().then(() => (k9(),AJ));for(let x of v(Q,{skipAttrs:/\bserver\b|\bsrc\s*=|\bdata-stx-scoped\b|\bdata-stx-router\b|\btype\s*=\s*["'](?!(?:text\/javascript|application\/javascript|module)["'])[^"']*["']/}))_0.push({match:x.fullMatch,attrs:x.attrs,content:x.body});for(let{match:x,attrs:g,content:l}of _0){w0=!0;let s=l;A7(l,Y,X.strict);let G0=await A$(l,{eventBindings:X0,attrs:g,hasColonDirectives:C,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:b});Q=Q.replace(x,()=>G0)}if(w0)Z.__stx_event_bindings=[];return Q}var Y5="<!--PARENT_CONTENT_PLACEHOLDER-->";var W$=P(()=>{SY();s$();d$();yY();gY();O8();a7();p7();cY();j$();rY();tY();h4();_2();L2();w2();U1();X$();Y1();T2();C2();SX();yX();z9();$6();hX();z5();uX();l6();L0();lX();iX();sX();aX();H9();k9();J9();MJ();b9();P9();A0();k3();b9();P9()});function qO($){let Z=[],Y=[];return _O($,Z),BO($,Z,Y),jO($,Y),HO($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function _O($,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 BO($,Z,Y){for(let X of zO){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 z=new RegExp(X.altClose,"g");K+=($.match(z)||[]).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 jO($,Z){for(let Y of WO)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function HO($,Z){for(let Y of UO)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function OO($,Z){let Y=$.slice(0,Z).split(`
|
|
13431
13431
|
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function LO($,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 FO($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function VO($){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 zO,WO,UO;var aQ=P(()=>{zO=[{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"}],WO=[{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')"}],UO=[{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 YG={};u(YG,{renderSlot:()=>eQ,processSlots:()=>ZG,parseSlots:()=>tQ,parseSlotElement:()=>AO,extractSlotContent:()=>TO,applySlots:()=>MO});function wO($,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 tQ($){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,q,_,B,j]=Q,H=q||_||B,L=Q.index+U.length,F=wO($,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,q)=>q.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,z;while((z=K.exec(Y))!==null){let[U,q,_,B,j,H]=z,L=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),O=(L+F).trim(),V=`<${q}${O?" "+O:""}>${H}</${q}>`;G.push({start:z.index,end:z.index+U.length,slotName:B,element:V})}let W=/<([a-zA-Z][a-zA-Z0-9-]*)\b([^>]*?)\bslot="([^"]+)"([^>]*?)\/>/gi;while((z=W.exec(Y))!==null){let[U,q,_,B,j]=z,H=_.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),L=j.replace(/\s*slot="[^"]*"\s*/," ").trimEnd(),F=(H+L).trim(),O=`<${q}${F?" "+F:""} />`;G.push({start:z.index,end:z.index+U.length,slotName:B,element:O})}G.sort((U,q)=>q.start-U.start);for(let U of G){let q=Z.named.get(U.slotName);if(q)q.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 AO($){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 eQ($,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((z)=>z.trim()).filter(Boolean);for(let z of K){let[W,U]=z.split(":").map((_)=>_.trim()),q=U||W;if(Z[W]!==void 0)G[q]=Z[W]}}else G[Q]=Z;J=RO(J,G)}return J}function RO($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=$G(J,Z);return c0(String(Q??""))}catch{return`{{ ${X} }}`}})}function $G($,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(!$0($))return;return Z0($,Object.keys(Z))(...Object.values(Z))}catch{return}}async function ZG($,Z,Y){let X=$;X=await NO(X,/<slot\s+name\s*=\s*["']([^"']+)["']([^>]*?)(?:\/>|>([\s\S]*?)<\/slot>)/gi,async(G,K,z,W)=>{let U=Z.named.get(K),q=W?.trim()||"",_=z||"",B={},j=/:([a-zA-Z_$][\w$-]*)\s*=\s*["']([^"']+)["']/g,H;while((H=j.exec(_))!==null){let L=H[1],F=H[2];B[L]=$G(F,Y)}return await eQ(U,B,q,Y)});let Q=/<slot\s*(?:\/>|>([\s\S]*?)<\/slot>)/gi;return X=X.replace(Q,(G,K)=>{if(G.includes("name="))return G;let z=K?.trim()||"";return Z.default||z}),X}async function NO($,Z,Y){let X=[],J=[];$.replace(Z,(K,...z)=>{let W=z[z.length-2];return J.push({match:K,index:W}),X.push(Y(K,...z.slice(0,-2))),K});let Q=await Promise.all(X),G=$;for(let K=J.length-1;K>=0;K--){let{match:z,index:W}=J[K];G=G.slice(0,W)+Q[K]+G.slice(W+z.length)}return G}function TO($){let Z=tQ($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function MO($,Z,Y,X){return await ZG($,{default:Z,named:Y},X)}var XG=P(()=>{Y1();A0()});import DO from"fs";import h from"path";function JG($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function IO($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function a1($){return!IO($)}function t1($){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:$1()}).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 kO($){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++}},z=()=>{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},W=()=>{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 q=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(q){let j=q[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(z())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])))W();J++}return Z}function SO($){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 bO($){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 PO($,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 z=$[X];if(z==="}")Q++;else if(z==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let z of SO(K)){let W=z.trim();if(!W||W.startsWith("..."))continue;let U=bO(W);if(U===-1)continue;let q=W.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(q))continue;if(Z[q]!==void 0)continue;let _=W.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[q]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function zX($,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(),z=Y.__importedComponents;if(z){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(z.has(L))return!0}let W=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?h.resolve(J.root):void 0,q=U??h.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(h.join(h.dirname(j),"components"));B(Z),B(h.join(h.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(h.resolve(U,"resources/views/components")),B(h.resolve(U,"resources/components")),B(h.resolve(U,"src/components")),B(h.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return i(h.resolve(h.dirname(X),`${Q}.stx`));for(let L of _){let F=h.isAbsolute(L)?L:h.resolve(q,L);for(let O of W)if(await i(h.join(F,O)))return!0}return!1}function CO($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function B1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:W}=await Promise.resolve().then(() => (B$(),t4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let q=new Set(U);q.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&CO(_)?_:"";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},W=()=>{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 q=$.slice(J).match(/^(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=/);if(q){let j=q[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(z())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])))W();J++}return Z}function SO($){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 bO($){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 PO($,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 z=$[X];if(z==="}")Q++;else if(z==="{"){if(Q--,Q===0){G=X;break}}}if(G===-1)return;let K=$.slice(G+1,J);for(let z of SO(K)){let W=z.trim();if(!W||W.startsWith("..."))continue;let U=bO(W);if(U===-1)continue;let q=W.slice(0,U).trim();if(!/^[A-Z_$][\w$]*$/i.test(q))continue;if(Z[q]!==void 0)continue;let _=W.slice(U+1).trim();if(!_)continue;try{let B=Object.keys(Z),j=Function(...B,`"use strict"; return (${_});`);Z[q]=j(...B.map((H)=>Z[H]))}catch{}}}catch{}}async function zX($,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(),z=Y.__importedComponents;if(z){for(let L of[Q,Q.toLowerCase(),G(Q),K(Q)])if(z.has(L))return!0}let W=[...new Set([`${Q}.stx`,`${G(Q)}.stx`,`${K(Q)}.stx`])],U=typeof J.root==="string"?h.resolve(J.root):void 0,q=U??h.dirname(X),_=[],B=(L)=>{if(L&&!_.includes(L))_.push(L)},j=Y.__originalFilePath;if(j)B(h.join(h.dirname(j),"components"));B(Z),B(h.join(h.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(h.resolve(U,"resources/views/components")),B(h.resolve(U,"resources/components")),B(h.resolve(U,"src/components")),B(h.resolve(U,"components"));if(Q.startsWith("./")||Q.startsWith("../"))return i(h.resolve(h.dirname(X),`${Q}.stx`));for(let L of _){let F=h.isAbsolute(L)?L:h.resolve(q,L);for(let O of W)if(await i(h.join(F,O)))return!0}return!1}function CO($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function B1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:W}=await Promise.resolve().then(() => (B$(),t4)),U=K??new Set;if(U.has($))return`[Circular component reference: ${$}]`;let q=new Set(U);q.add($);let _=typeof Z.client==="string"?Z.client.trim():"";if("client"in Z)delete Z.client;let B=_&&_!=="load"&&CO(_)?_:"";try{let j=(C)=>C.split("-").map((v)=>v.charAt(0).toUpperCase()+v.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 v of C)if(O.has(v)){F=O.get(v);break}}let V=[];if(!F){let C=[`${L}.stx`,`${j(L)}.stx`,`${H(L)}.stx`],v=[...new Set(C)],x=J.__originalFilePath,g=[];if(x){let W0=h.join(h.dirname(x),"components");g.push(W0)}if(X)g.push(X);let l=h.join(h.dirname(Q),"components");if(!g.includes(l))g.push(l);if(G.componentsDir&&G.componentsDir!==X&&!g.includes(G.componentsDir))g.push(G.componentsDir);let s=G._pluginComponentDirs;if(Array.isArray(s)){for(let W0 of s)if(typeof W0==="string"&&!g.includes(W0))g.push(W0)}let G0=typeof G.root==="string"?h.resolve(G.root):void 0,E0=G0??h.dirname(Q),f0=[];if(G0)f0.push(h.resolve(G0,"resources/views/components")),f0.push(h.resolve(G0,"resources/components")),f0.push(h.resolve(G0,"src/components")),f0.push(h.resolve(G0,"components"));f0.push(h.resolve(import.meta.dir,"components"));for(let W0 of f0)if(!g.includes(W0))g.push(W0);let y1=[...new Set(g.map((W0)=>{if(!W0)return W0;return h.isAbsolute(W0)?W0:h.resolve(E0,W0)}))];if(g.length=0,g.push(...y1),L.startsWith("./")||L.startsWith("../"))F=h.resolve(h.dirname(Q),`${L}.stx`),V.push(F);else for(let W0 of g){if(!W0)continue;for(let v1 of v){let d5=h.join(W0,v1);if(V.push(d5),await i(d5)){F=d5;break}}if(F)break;if(!F)try{let v1=await import("fs");if(!v1.statSync(W0,{throwIfNoEntry:!1})?.isDirectory())continue;let y$=8,t=[{path:W0,depth:0}];while(t.length>0&&!F){let e0=t.pop();if(e0.depth>=y$)continue;let x7;try{x7=v1.readdirSync(e0.path,{withFileTypes:!0})}catch{continue}for(let v$ of x7){if(!v$.isDirectory())continue;if(v$.name==="node_modules"||v$.name.startsWith("."))continue;let z8=h.join(e0.path,v$.name);for(let tG of v){let f7=h.join(z8,tG);if(V.push(f7),await i(f7)){F=f7;break}}if(F)break;t.push({path:z8,depth:e0.depth+1})}}}catch{}if(F)break}}if(!F||!await i(F)){let C=V.length>0?`
|
|
13433
13433
|
Searched paths:
|
|
13434
13434
|
${V.map((v)=>` - ${v}`).join(`
|
|
13435
|
-
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${
|
|
13436
|
-
`)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:o}=await Promise.resolve().then(() => (XG(),YG)),{defaultSlot:D0,namedSlots:G1}=m(Y);f=await o(f,D0||Y,G1,N);for(let[
|
|
13435
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${C}`}z.add(F);let A;if(R$.has(F))A=R$.get(F);else try{A=await Bun.file(F).text(),R$.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,v]of Object.entries(J))if(!C.startsWith("__")||w.has(C))R[C]=v;let N={...R,...Z,props:Z,slot:Y,__processedComponents:q,__sections:{}};PO(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 D=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...A.matchAll(D)],I=[];for(let C of E){let v=C[1]||"",x=C[2]||"",g=v.includes("server");if(a1(v)&&x.trim())x=t1(x);if(g&&x)try{await W(x,N,F)}catch(s){}if(!g){let s=x.replace(/^\s*const\s*\{[^}]+\}\s*=\s*window\.stx\s*;?\s*\n?/gm,"");if(s.includes("{{")&&s.includes("}}"))s=Z1(s,N,F);let G0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");I.push(`<script${G0}>${s}</script>`)}}let k=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),S=k?k[1]:"",b=k?k[2]:"",y="",d=S&&/\bscoped\b/i.test(S);if(k)y=`<style${S}>${b}</style>`;let f=M;if(f=f.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),k)f=f.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"");{let C=/@push\s*\(\s*['"]styles['"]\s*\)([\s\S]*?)@endpush/gi,v=[];if(f=f.replace(C,(x,g)=>{let l=g.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(l)v.push(`<style${l[1]}>${l[2]}</style>`);return""}),f=f.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)y=`${y}${v.join(`
|
|
13436
|
+
`)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:m,applySlots:o}=await Promise.resolve().then(() => (XG(),YG)),{defaultSlot:D0,namedSlots:G1}=m(Y);f=await o(f,D0||Y,G1,N);for(let[C,v]of Object.entries(N))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("<")||v.includes(""")){let x=s7(v);N[C]=x}}let x0=I.some((C)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(C)),b0={...G,componentsDir:h.dirname(F),skipSignalsRuntime:!0,skipEventDirectives:x0,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let X0=await N0(f,N,F,b0,z),w0=`stx_${L.replace(/[^a-zA-Z0-9]/g,"_")}_${++EO}_${Math.random().toString(36).slice(2,8)}`,_0=X0;if(x0){let C="";if(Object.keys(Z).length>0)try{C=` data-stx-props="${JG(JSON.stringify(Z))}"`}catch{}let v=B?` stx-hydrate="${JG(B)}"`:"";if(_0=`<div data-stx-scope="${w0}"${C}${v}>${X0}</div>`,_0=I.map((g)=>{let l=g.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!l)return g;let[,s,G0]=l,E0=W1(G0),f0=`
|
|
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((v)=>` - ${v}`).join(`
|
|
|
13445
13445
|
const onMount = (fn) => __scopeVars.__mountCallbacks.push(fn);
|
|
13446
13446
|
const onDestroy = (fn) => __scopeVars.__destroyCallbacks.push(fn);
|
|
13447
13447
|
|
|
13448
|
-
${
|
|
13448
|
+
${E0}
|
|
13449
13449
|
|
|
13450
13450
|
// Register all defined signals and functions in this scope
|
|
13451
13451
|
const __localVars = {};
|
|
13452
13452
|
try {
|
|
13453
|
-
${kO(
|
|
13453
|
+
${kO(E0).map((y1)=>`if (typeof ${y1} !== 'undefined') __localVars['${y1}'] = ${y1};`).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="${w0}" data-stx-scoped${s}>${f0}</script>`;return`<script data-stx-scoped${s}>${f0}</script>`}).join(`
|
|
13459
13459
|
`)+`
|
|
13460
|
-
`+_0,
|
|
13461
|
-
`+
|
|
13462
|
-
`+
|
|
13460
|
+
`+_0,y)_0+=`
|
|
13461
|
+
`+y}else{if(y)_0+=`
|
|
13462
|
+
`+y;if(I.length>0){let C=N.__stx_event_bindings||[],v=w$(N),x=await Promise.all(I.map(async(g)=>{let l=g.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!l)return g;return await A$(l[1],{eventBindings:C,templateContent:_0,filePath:F,projectRoot:process.cwd(),serverData:v})}));_0+=`
|
|
13463
13463
|
`+x.join(`
|
|
13464
|
-
`),N.__stx_event_bindings=[]}}if(d){let
|
|
13464
|
+
`),N.__stx_event_bindings=[]}}if(d){let C=X7(_0,F);if(C.hasScoped)_0=C.html}return _0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{U.delete($)}}async function i($){return Bun.file($).exists()}function d9($,Z){let Y=h.resolve(Z),X=h.resolve($),J=Y.endsWith(h.sep)?Y:Y+h.sep;if(X===Y||X.startsWith(J))return X;return null}async function D4($,Z,Y,X){let J=await yO($,Z,Y,X);if(J===null)return null;let Q=d9(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 z=h.isAbsolute(K)?K:h.resolve(process.cwd(),K);if(d9(J,z))return h.resolve(J)}return console.warn(`[stx] rejected resolved template path that escapes project root: ${J} (template: ${$}, from: ${Z})`),null}async function yO($,Z,Y,X){if(Y.debug)console.log(`Resolving template path: ${$} from ${Z}`);let J=h.dirname(Z),Q=process.cwd();if($.startsWith("/")){let _=h.join(Q,$),B=d9(_,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 i(B)&&X)X.add(B);return B}let G=h.join(J,$);if(await i(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 i(B)){if(Y.debug)console.log(`Found direct path with extension: ${B}`);if(X)X.add(B);return B}}let K="",z=h.resolve(J),W=process.cwd();for(let _=0;_<10;_++){let B=h.join(z,"layouts"),j=!1;try{j=DO.statSync(B,{throwIfNoEntry:!1})?.isDirectory()??!1}catch{}if(j){K=B;break}let H=h.dirname(z);if(H===z||H.length<W.length)break;z=H}if(K){let _=$.startsWith("layouts/")?$.slice(8):$,B=h.join(K,_);if(await i(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 i(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 _=h.isAbsolute(Y.layoutsDir)?Y.layoutsDir:h.resolve(process.cwd(),Y.layoutsDir),B=$.startsWith("layouts/")?$.slice(8):$,j=h.join(_,B);if(await i(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 i(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=h.join(Y.partialsDir||J,"layouts",_[1]);if(await i(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 i(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=h.join(Y.partialsDir,"layouts"),await i(K)){let _=h.join(K,$);if(await i(_)){if(Y.debug)console.log(`Found in partials layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await i(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||h.join(process.cwd(),"views"),q=h.join(U,$);if(await i(q)){if(Y.debug)console.log(`Found in views path: ${q}`);if(X)X.add(q);return q}if(!$.endsWith(".stx")){let _=`${q}.stx`;if(await i(_)){if(Y.debug)console.log(`Found in views path with extension: ${_}`);if(X)X.add(_);return _}}if(J.includes("temp")){let _=h.join(h.dirname(J),"layouts",$);if(await i(_)){if(Y.debug)console.log(`Found in temp layouts dir: ${_}`);if(X)X.add(_);return _}if(!$.endsWith(".stx")){let B=`${_}.stx`;if(await i(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 QG($,Z,Y){let X=0,J="",Q="";try{if(typeof Z==="number"&&Z>=0){let G=$.split(`
|
|
13465
13465
|
`),K=0;for(let z=0;z<G.length;z++)if(K+=G[z].length+1,K>=Z){X=z+1,J=G[z].trim();let W=Math.max(0,z-2),U=Math.min(G.length,z+3);Q=G.slice(W,U).map((q,_)=>{let B=W+_+1;return`${B===X?"> ":" "}${B}: ${q}`}).join(`
|
|
13466
13466
|
`);break}}else if(Y){let G=$.indexOf(Y);if(G>=0)return QG($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function Q0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=QG(X,J,Q),z=Y.split("/").pop(),W=0;if(typeof J==="number"&&J>=0&&X){let q=X.lastIndexOf(`
|
|
13467
13467
|
`,Math.max(0,J-1));W=J-(q+1)+1}let U="";if(G>0)U+=`
|