@stacksjs/stx 0.2.84 → 0.2.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-shell.js +50 -50
- package/dist/build-mode-detector.js +95 -95
- package/dist/build-views.js +149 -149
- package/dist/build.js +37 -37
- package/dist/cli.js +51 -51
- package/dist/component-processing.js +16 -16
- package/dist/component-renderer.js +32 -32
- package/dist/components.js +95 -95
- package/dist/dev-server/index.js +36 -36
- package/dist/dev-server/serve-app.js +50 -50
- package/dist/dev-server/serve-file.js +50 -50
- package/dist/dev-server/serve-markdown.js +36 -36
- package/dist/dev-server/serve-multi.js +49 -49
- package/dist/dev-server.js +50 -50
- package/dist/docs.js +96 -96
- package/dist/dynamic-components.js +32 -32
- package/dist/includes.js +32 -32
- package/dist/index.js +50 -50
- package/dist/interactive.js +96 -96
- package/dist/lazy-loader.js +95 -95
- package/dist/plugin.js +44 -44
- package/dist/process.js +31 -31
- package/dist/production-builder.js +31 -31
- package/dist/production-server.js +31 -31
- package/dist/pwa/index.js +95 -95
- package/dist/pwa/offline.js +95 -95
- package/dist/pwa.js +84 -84
- package/dist/render.js +153 -153
- package/dist/serve.js +106 -106
- package/dist/site-builder/build.js +97 -97
- package/dist/site-builder/index.js +38 -38
- package/dist/ssg.js +13 -13
- package/dist/ssr.js +83 -83
- package/dist/story/cli.js +36 -36
- package/dist/story/commands/dev.js +36 -36
- package/dist/story/commands/index.js +36 -36
- package/dist/story/index.js +36 -36
- package/dist/story/renderer.js +96 -96
- package/dist/story/server.js +36 -36
- package/dist/story/visual-testing.js +96 -96
- package/dist/streaming.js +32 -32
- package/dist/template-compiler.js +24 -24
- package/dist/template-hydrator.js +110 -110
- package/dist/testing.js +95 -95
- package/dist/utils.js +32 -32
- package/dist/variable-extractor.js +11 -11
- package/dist/web-components.js +95 -95
- package/package.json +7 -5
package/dist/story/server.js
CHANGED
|
@@ -1117,7 +1117,7 @@ ${H}
|
|
|
1117
1117
|
filter: blur(0);
|
|
1118
1118
|
transform: scale(1);
|
|
1119
1119
|
}
|
|
1120
|
-
`.trim();$5=new Map});import{createHash as v7}from"crypto";import{readFile as SK,stat as y8}from"fs/promises";async function T0($){try{let Z=await SK($);return v7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function EF($){return v7("sha256").update($).digest("hex").slice(0,16)}function b8($){return v7("sha256").update($).digest("hex").slice(0,16)}function E$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${b8($)}-${b8(Y)}`}async function x7($){try{return(await y8($)).mtimeMs}catch{return 0}}async function R0($){try{return await y8($),!0}catch{return!1}}var S1=()=>{};import{mkdir as bK,readFile as P8,writeFile as yK,readdir as v8,rm as f7,stat as CK}from"fs/promises";import{join as Z5,dirname as PK}from"path";async function vK($){try{await bK($,{recursive:!0})}catch{}}function x8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function C8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await x7(Z)!==$.srcMtime)return!1;return!0}async function k$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=E$($,Z),Q=t0.get(J);if(Q){if(await C8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;t0.delete(J)}let G=x8(X.directory,J,Y);if(await R0(G))try{let K=await P8(G,"utf-8"),z=JSON.parse(K);if(await C8(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),t0.set(J,z),z.data}catch{}return null}async function S$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=E$($,Z),G=await T0($),K=await x7($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:E$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};t0.set(Q,z);let W=x8(J.directory,Q,X);try{await vK(PK(W)),await yK(W,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function CF($,Z,Y=Y5){for(let[X,J]of t0.entries())if(J.src===$)t0.delete(X)}async function b$($,Z=Y5){if($==="all")t0.clear();else t0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await f7(J,{recursive:!0,force:!0})}catch{}}}async function PF($=Y5){let Z={memoryEntries:t0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await v8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await CK(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function vF($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await v8(J);for(let G of Q){let K=Z5(J,G);try{let z=await P8(K,"utf-8"),W=JSON.parse(z);if(Date.now()-W.createdAt>Y)await f7(K),t0.delete(W.key),Z++}catch{await f7(K).catch(()=>{}),Z++}}}catch{}}return Z}var t0,Y5;var g7=y(()=>{S1();t0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class C${config;constructor($={}){this.config={...xK,...$}}async get($,Z){return k$($,Z,"image",this.config)}async set($,Z,Y){return S$($,Z,Y,"image",this.config)}async clear(){return b$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function h7($){if(!y$)y$=new C$($);else if($)y$.updateConfig($);return y$}async function P$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return h7(X).get($,Z)}async function v$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return h7(J).set($,Z,Y)}async function f8(){return h7().clear()}var xK,y$=null;var d7=y(()=>{g7();xK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as fK,basename as gK,extname as hK,join as dK}from"path";import{mkdir as uK}from"fs/promises";async function u7(){try{return await import("ts-images")}catch{return null}}function g8($){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 mK($,Z){let Y=Z?g8(Z):g8("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 h8($,Z,Y){let X=await u7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await P$($,Z,Y);if(J)return J;try{let Q=fK($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=mK(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await uK(K,{recursive:!0});let W=await T0(Q),U=gK($,hK($)),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 m7(Q,Z.transformations,X);for(let j of q){let H=G[j]||{},L=`${U}-${W}.${j}`,F=dK(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 v$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function d8($,Z,Y,X){let J=await u7();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 m7($,Z,Y){let X=Y||await u7();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 u8=y(()=>{S1();d7()});import{resolve as lK,basename as cK,extname as pK,join as iK}from"path";import{mkdir as nK}from"fs/promises";async function oK(){try{return await import("ts-images")}catch{return null}}async function l7($,Z,Y){let X=await oK();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=lK($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||sK,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await nK(K,{recursive:!0});let W=await T0(J),U=cK($,pK($)),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=iK(K,F),V=`${z}/${F}`;try{let A=q[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||rK(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function rK($){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 m8($,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 sF($,Z,Y){let X=[];for(let J of Z){let Q=await l7(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:aK(G)})}}return X}function aK($){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 sK;var l8=y(()=>{S1();sK=[320,480,640,768,1024,1280,1536,1920]});var c8={};l(c8,{setCachedImageResult:()=>v$,processImage:()=>h8,optimizeImage:()=>d8,getCachedImageResult:()=>P$,generateSrcset:()=>m8,generateResponsiveVariants:()=>l7,clearImageCache:()=>f8,applyTransformations:()=>m7,ImageProcessorCache:()=>C$});var p8=y(()=>{u8();l8();d7()});async function tK(){try{return await Promise.resolve().then(() => (p8(),c8))}catch($){if(!i8)console.warn("[stx-media] Image processor not available, some features disabled:",$),i8=!0;return null}}async function P5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return Xz(X,Y)}if(Y.processedResult?.processed)return n7($,Y.processedResult,Z);if(Y.responsiveVariants)return r8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=k1,dpr:U,formats:q=e1,quality:_=c7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":f$,decoding:V=x$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,D=$.style,I=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return Zz($);let b,C,d=I||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{b=await k8(J,{strategy:j,...H}),C=E8(d,b,H)}catch{}let f=U!==void 0&&G!==void 0,u;if(f)u=$z($,d,b,Z);else u=await eK($,d,b,Z);let o;if(F){let y0=q.includes("webp")?"webp":q[0],I0=C5(J,W,{...B,q:_},y0),X0=typeof z==="object"?S7(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${I0}" imagesizes="${X0}" />`}let N0=[];if(!n8&&j!=="none")N0.push(C7),n8=!0;if(C)N0.push(C);let Z1=L?s8(d):void 0;return{html:u,preloadLink:o,css:N0.length>0?N0.join(`
|
|
1120
|
+
`.trim();$5=new Map});import{createHash as v7}from"crypto";import{readFile as SK,stat as y8}from"fs/promises";async function M0($){try{let Z=await SK($);return v7("sha256").update(Z).digest("hex").slice(0,16)}catch{return""}}function EF($){return v7("sha256").update($).digest("hex").slice(0,16)}function b8($){return v7("sha256").update($).digest("hex").slice(0,16)}function E$($,Z){let Y=JSON.stringify(Z,Object.keys(Z).sort());return`${b8($)}-${b8(Y)}`}async function x7($){try{return(await y8($)).mtimeMs}catch{return 0}}async function R0($){try{return await y8($),!0}catch{return!1}}var S1=()=>{};import{mkdir as bK,readFile as P8,writeFile as yK,readdir as v8,rm as f7,stat as CK}from"fs/promises";import{join as Z5,dirname as PK}from"path";async function vK($){try{await bK($,{recursive:!0})}catch{}}function x8($,Z,Y){return Z5($,Y,`${Z}.json`)}async function C8($,Z,Y){if((Date.now()-$.createdAt)/86400000>Y)return!1;if(await x7(Z)!==$.srcMtime)return!1;return!0}async function k$($,Z,Y,X=Y5){if(!X.enabled)return null;let J=E$($,Z),Q=t0.get(J);if(Q){if(await C8(Q,$,X.maxAge))return Q.lastAccessedAt=Date.now(),Q.data;t0.delete(J)}let G=x8(X.directory,J,Y);if(await R0(G))try{let K=await P8(G,"utf-8"),z=JSON.parse(K);if(await C8(z,$,X.maxAge))return z.lastAccessedAt=Date.now(),t0.set(J,z),z.data}catch{}return null}async function S$($,Z,Y,X,J=Y5){if(!J.enabled)return;let Q=E$($,Z),G=await M0($),K=await x7($),z={key:Q,src:$,srcHash:G,srcMtime:K,optionsHash:E$("",Z),data:Y,createdAt:Date.now(),lastAccessedAt:Date.now()};t0.set(Q,z);let W=x8(J.directory,Q,X);try{await vK(PK(W)),await yK(W,JSON.stringify(z,null,2))}catch(U){console.warn(`[stx-media] Failed to write cache: ${U}`)}}async function CF($,Z,Y=Y5){for(let[X,J]of t0.entries())if(J.src===$)t0.delete(X)}async function b$($,Z=Y5){if($==="all")t0.clear();else t0.clear();let Y=$==="all"?["image","video"]:[$];for(let X of Y){let J=Z5(Z.directory,X);try{await f7(J,{recursive:!0,force:!0})}catch{}}}async function PF($=Y5){let Z={memoryEntries:t0.size,diskEntries:{image:0,video:0},totalSizeMB:0};for(let Y of["image","video"]){let X=Z5($.directory,Y);try{let J=await v8(X);Z.diskEntries[Y]=J.length;for(let Q of J){let G=Z5(X,Q),K=await CK(G);Z.totalSizeMB+=K.size/1048576}}catch{}}return Z}async function vF($=Y5){let Z=0,Y=$.maxAge*24*60*60*1000;for(let X of["image","video"]){let J=Z5($.directory,X);try{let Q=await v8(J);for(let G of Q){let K=Z5(J,G);try{let z=await P8(K,"utf-8"),W=JSON.parse(z);if(Date.now()-W.createdAt>Y)await f7(K),t0.delete(W.key),Z++}catch{await f7(K).catch(()=>{}),Z++}}}catch{}}return Z}var t0,Y5;var g7=y(()=>{S1();t0=new Map,Y5={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500}});class C${config;constructor($={}){this.config={...xK,...$}}async get($,Z){return k$($,Z,"image",this.config)}async set($,Z,Y){return S$($,Z,Y,"image",this.config)}async clear(){return b$("image",this.config)}updateConfig($){this.config={...this.config,...$}}}function h7($){if(!y$)y$=new C$($);else if($)y$.updateConfig($);return y$}async function P$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return h7(X).get($,Z)}async function v$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return h7(J).set($,Z,Y)}async function f8(){return h7().clear()}var xK,y$=null;var d7=y(()=>{g7();xK={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:500,cacheVariants:!0,cachePlaceholders:!0}});import{resolve as fK,basename as gK,extname as hK,join as dK}from"path";import{mkdir as uK}from"fs/promises";async function u7(){try{return await import("ts-images")}catch{return null}}function g8($){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 mK($,Z){let Y=Z?g8(Z):g8("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 h8($,Z,Y){let X=await u7();if(!X)return console.warn("[stx-media] ts-images not installed, skipping optimization"),{src:$,processed:!1};let J=await P$($,Z,Y);if(J)return J;try{let Q=fK($);if(!await R0(Q))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let G=mK(Y,Z.preset),K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await uK(K,{recursive:!0});let W=await M0(Q),U=gK($,hK($)),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 m7(Q,Z.transformations,X);for(let j of q){let H=G[j]||{},L=`${U}-${W}.${j}`,F=dK(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 v$($,Z,_,Y),_}catch(Q){return{src:$,processed:!1,errors:[`Processing failed: ${Q}`]}}}async function d8($,Z,Y,X){let J=await u7();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 m7($,Z,Y){let X=Y||await u7();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 u8=y(()=>{S1();d7()});import{resolve as lK,basename as cK,extname as pK,join as iK}from"path";import{mkdir as nK}from"fs/promises";async function oK(){try{return await import("ts-images")}catch{return null}}async function l7($,Z,Y){let X=await oK();if(!X)return console.warn("[stx-media] ts-images not installed, skipping responsive generation"),null;let J=lK($);if(!await R0(J))return console.warn(`[stx-media] Source file not found: ${$}`),null;try{let Q=Z.responsiveWidths||Y.breakpoints||sK,G=Z.formats||Y.defaultFormats||["avif","webp","jpeg"],K=Y.outputDir||"dist/images",z=Y.baseUrl||"/images";await nK(K,{recursive:!0});let W=await M0(J),U=cK($,pK($)),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=iK(K,F),V=`${z}/${F}`;try{let A=q[j]?.quality||80;if(await R0(O)){_.byFormat[j].push({path:O,url:V,width:L,height:0,format:j,size:0}),H.push(`${V} ${L}w`);continue}let w=await X.processImage({input:J,output:O,format:j,quality:A,resize:{width:L}});if(w)_.byFormat[j].push({path:O,url:V,width:L,height:w.height||Math.round(L*(w.height||1)/(w.width||1)),format:j,size:w.outputSize||0}),H.push(`${V} ${L}w`)}catch(A){console.warn(`[stx-media] Failed to generate ${j} at ${L}w: ${A}`)}}_.srcsets[j]=H.join(", ")}let B=Z.placeholder||Y.placeholderStrategy||"thumbhash";if(B!=="none")try{if(B==="thumbhash"){let j=await X.generateThumbHash(J);_.placeholder={dataURL:j.dataUrl,width:j.width||32,height:j.height||32,strategy:"thumbhash"}}else{let j=await X.generatePlaceholder(J,{strategy:B,width:20});_.placeholder={dataURL:j.dataURL,width:j.width,height:j.height,strategy:B}}}catch(j){console.warn(`[stx-media] Failed to generate placeholder: ${j}`)}return _.sizes=Z.sizes||rK(Q),_}catch(Q){return console.error(`[stx-media] Responsive generation failed: ${Q}`),null}}function rK($){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 m8($,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 sF($,Z,Y){let X=[];for(let J of Z){let Q=await l7(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:aK(G)})}}return X}function aK($){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 sK;var l8=y(()=>{S1();sK=[320,480,640,768,1024,1280,1536,1920]});var c8={};l(c8,{setCachedImageResult:()=>v$,processImage:()=>h8,optimizeImage:()=>d8,getCachedImageResult:()=>P$,generateSrcset:()=>m8,generateResponsiveVariants:()=>l7,clearImageCache:()=>f8,applyTransformations:()=>m7,ImageProcessorCache:()=>C$});var p8=y(()=>{u8();l8();d7()});async function tK(){try{return await Promise.resolve().then(() => (p8(),c8))}catch($){if(!i8)console.warn("[stx-media] Image processor not available, some features disabled:",$),i8=!0;return null}}async function P5($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipOptimization){if(Y.tsImagesConfig?.enabled&&!Y.isDev)return Xz(X,Y)}if(Y.processedResult?.processed)return n7($,Y.processedResult,Z);if(Y.responsiveVariants)return r8($,Y.responsiveVariants,Z);let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=k1,dpr:U,formats:q=e1,quality:_=c7,params:B={},placeholder:j="none",placeholderOptions:H={},lazy:L=!0,priority:F=!1,loading:O=F?"eager":f$,decoding:V=x$,fetchpriority:A,objectFit:w,objectPosition:R,crossorigin:N,referrerpolicy:M}=$,T=$.class,D=$.style,I=$.id,E=$.data||{},{isDev:k=!1,baseUrl:S=""}=Z;if(k&&!Z.optimize)return Zz($);let b,P,d=I||`stx-img-${Math.random().toString(36).slice(2,8)}`;if(j!=="none"&&!F)try{b=await k8(J,{strategy:j,...H}),P=E8(d,b,H)}catch{}let f=U!==void 0&&G!==void 0,u;if(f)u=$z($,d,b,Z);else u=await eK($,d,b,Z);let o;if(F){let y0=q.includes("webp")?"webp":q[0],E0=C5(J,W,{...B,q:_},y0),X0=typeof z==="object"?S7(z):z||"100vw";o=`<link rel="preload" as="image" imagesrcset="${E0}" imagesizes="${X0}" />`}let N0=[];if(!n8&&j!=="none")N0.push(C7),n8=!0;if(P)N0.push(P);let Z1=L?s8(d):void 0;return{html:u,preloadLink:o,css:N0.length>0?N0.join(`
|
|
1121
1121
|
`):void 0,script:Z1}}async function eK($,Z,Y,X){let{src:J,alt:Q,width:G,height:K,sizes:z,widths:W=k1,formats:U=e1,quality:q=c7,params:_={},lazy:B=!0,priority:j=!1,loading:H=j?"eager":f$,decoding:L=x$,fetchpriority:F,objectFit:O,objectPosition:V,crossorigin:A,referrerpolicy:w}=$,R=$.class,N=$.style,M=$.data||{},T=typeof z==="object"?S7(z):z||"100vw",D=[];for(let k of U){let S=C5(J,W,{..._,q},k),b=b7(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 I=p7({src:U1(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:o8(R,Y),style:i7(N,O,V,Y),lazy:B&&!j,data:M}),E;if(Y){let k=`background-image: url('${Y.dataURL}'); background-size: cover; background-position: center;`;E=`<div id="${Z}" class="stx-img-placeholder" style="${k}">
|
|
1122
1122
|
<picture>
|
|
1123
1123
|
${D.join(`
|
|
@@ -1167,7 +1167,7 @@ ${D.join(`
|
|
|
1167
1167
|
|
|
1168
1168
|
observer.observe(container);
|
|
1169
1169
|
})();
|
|
1170
|
-
`.trim()}function Yz($){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 YV($,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=Yz(U);if(q){let _=await P5(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 Xz($,Z){let Y=await tK();if(!Y)return P5({...$,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 r8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return n7($,Q,Z)}return P5({...$,process:!1},Z)}async function n7($,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 Yz($){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 YV($,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=Yz(U);if(q){let _=await P5(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 Xz($,Z){let Y=await tK();if(!Y)return P5({...$,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 r8($,Q,Z)}else{let Q=await Y.processImage($.src,$,X);if(Q.processed)return n7($,Q,Z)}return P5({...$,process:!1},Z)}async function n7($,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((P)=>P.format==="jpeg")||L.find((P)=>P.format==="webp")||L[0],O=F?.url||$.src,V=L.filter((P)=>P.format===(F?.format||"jpeg")).map((P)=>`${P.url} ${P.width}w`).join(", "),A=new Map;for(let P of L){if(!A.has(P.format))A.set(P.format,[]);A.get(P.format).push(P)}let w=[],R=["avif","webp","jpeg","png"];for(let P of R){let d=A.get(P);if(d&&d.length>0){let f=d.map((o)=>`${o.url} ${o.width}w`).join(", "),u=b7(P);if(G&&!K)w.push(` <source type="${u}" data-srcset="${f}" />`);else w.push(` <source type="${u}" srcset="${f}" />`)}}let N=[];if(G&&!K){if(N.push(`data-src="${u0(O)}"`),N.push('src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"'),V)N.push(`data-srcset="${V}"`)}else if(N.push(`src="${u0(O)}"`),V)N.push(`srcset="${V}"`);N.push(`alt="${u0(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 I=[];if(_)I.push(_);if(Z.placeholder)I.push("stx-img-blur");if(I.length>0)N.push(`class="${I.join(" ")}"`);if(G&&!K)N.push("data-stx-lazy");for(let[P,d]of Object.entries(H))N.push(`data-${P}="${u0(d)}"`);let E;if(Z.placeholder||Z.dominantColor&&$.useDominantColor){let P=Z.placeholder?`background-image: url('${Z.placeholder}'); background-size: cover; background-position: center;`:`background-color: ${Z.dominantColor};`;E=`<div id="${j}" class="stx-img-placeholder" style="${P}">
|
|
1171
1171
|
<picture>
|
|
1172
1172
|
${w.join(`
|
|
1173
1173
|
`)}
|
|
@@ -1181,8 +1181,8 @@ ${w.join(`
|
|
|
1181
1181
|
`):void 0,script:S}}async function r8($,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 n7($,X,Y)}var i8=!1,c7=80,x$="async",f$="lazy",n8=!1;var a8=y(()=>{y7();S8()});function Jz(){return B0({name:"img",hasEndTag:!1,description:"Render an optimized responsive image with srcset and lazy loading",transform:async($,Z,Y,X)=>{let{src:J,alt:Q,options:G}=Qz($,Z,Y);if(!J)return console.warn("@img directive: missing src argument"),"<!-- @img: missing src -->";let K={src:J,alt:Q||"",widths:G.widths||k1,formats:G.formats||e1,quality:G.quality,sizes:G.sizes,dpr:G.dpr,params:G.params,placeholder:G.placeholder,placeholderOptions:G.placeholderOptions,lazy:G.lazy!==!1,priority:G.priority||!1,loading:G.loading,decoding:G.decoding,fetchpriority:G.fetchpriority,objectFit:G.objectFit,objectPosition:G.objectPosition,class:G.class,style:G.style,id:G.id,width:G.width,height:G.height},z=Y.__isDev||!1,W=await P5(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 Qz($,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=Gz(X),Q=o7(J[0],Y)||"",G=o7(J[1],Y)||"",K={};if(J[2]){let z=o7(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 Gz($){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 o7($,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 t8;var e8=y(()=>{w7();a8();y7();t8=Jz()});class h${config;constructor($={}){this.config={...Kz,...$}}async get($,Z){return k$($,Z,"video",this.config)}async set($,Z,Y){return S$($,Z,Y,"video",this.config)}async clear(){return b$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function s7($){if(!g$)g$=new h$($);else if($)g$.updateConfig($);return g$}async function d$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return s7(X).get($,Z)}async function u$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return s7(J).set($,Z,Y)}async function $Z(){return s7().clear()}var Kz,g$=null;var r7=y(()=>{g7();Kz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as a7,basename as t7,extname as e7,join as m$}from"path";import{mkdir as $3}from"fs/promises";async function Z3(){try{return await import("ts-videos")}catch{return null}}async function l$($,Z,Y,X){let J=await Z3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=a7($);if(!await R0(Q))return null;await $3(Y,{recursive:!0});let G=await
|
|
1185
|
-
`)}async function n$($,Z,Y,X,J){let Q=await KZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=XZ($);if(!await R0(G))return null;let K=await
|
|
1184
|
+
<script>${W.script}</script>`;return U},defaults:{src:"",alt:"",options:{lazy:!0,placeholder:"none"}}})}function Qz($,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=Gz(X),Q=o7(J[0],Y)||"",G=o7(J[1],Y)||"",K={};if(J[2]){let z=o7(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 Gz($){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 o7($,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 t8;var e8=y(()=>{w7();a8();y7();t8=Jz()});class h${config;constructor($={}){this.config={...Kz,...$}}async get($,Z){return k$($,Z,"video",this.config)}async set($,Z,Y){return S$($,Z,Y,"video",this.config)}async clear(){return b$("video",this.config)}updateConfig($){this.config={...this.config,...$}}}function s7($){if(!g$)g$=new h$($);else if($)g$.updateConfig($);return g$}async function d$($,Z,Y){let X=Y?{directory:`${Y.outputDir}/../.cache`}:{};return s7(X).get($,Z)}async function u$($,Z,Y,X){let J=X?{directory:`${X.outputDir}/../.cache`}:{};return s7(J).set($,Z,Y)}async function $Z(){return s7().clear()}var Kz,g$=null;var r7=y(()=>{g7();Kz={enabled:!0,directory:".stx/media-cache",maxAge:30,maxSize:2000,cacheTranscoded:!0,cacheThumbnails:!0,cacheManifests:!0}});import{resolve as a7,basename as t7,extname as e7,join as m$}from"path";import{mkdir as $3}from"fs/promises";async function Z3(){try{return await import("ts-videos")}catch{return null}}async function l$($,Z,Y,X){let J=await Z3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate poster"),null;try{let Q=a7($);if(!await R0(Q))return null;await $3(Y,{recursive:!0});let G=await M0(Q),K=t7($,e7($)),z=Z.format||"webp",W=Z.timestamp||0,U=`${K}-poster-${G}.${z}`,q=m$(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 c$($,Z,Y,X){let J=await Z3();if(!J)return[];try{let Q=a7($);if(!await R0(Q))return[];await $3(Y,{recursive:!0});let G=await M0(Q),K=t7($,e7($)),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||m$(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 ZZ($,Z,Y,X){let J=await Z3();if(!J)return console.warn("[stx-media] ts-videos not installed, cannot generate sprite sheet"),null;try{let Q=a7($);if(!await R0(Q))return null;await $3(Y,{recursive:!0});let G=await M0(Q),K=t7($,e7($)),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=m$(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:m$(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 Y3=y(()=>{S1()});import{resolve as XZ,basename as JZ,extname as QZ,join as b1}from"path";import{mkdir as p$,writeFile as GZ}from"fs/promises";async function KZ(){try{return await import("ts-videos")}catch{return null}}async function i$($,Z,Y,X,J){let Q=await KZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate HLS manifest"),null;try{let G=XZ($);if(!await R0(G))return null;let K=await M0(G),z=JZ($,QZ($)),W=b1(Y,`${z}-${K}-hls`);await p$(W,{recursive:!0});let U=Z.length>0?Z:zZ,q=J?.segmentDuration||6,j=(await new Q.Input(G).getInfo()).duration||0,H=[],L=0;for(let V of U){let A=b1(W,V.label);await p$(A,{recursive:!0});let w=`${V.label}.m3u8`,R=b1(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=b1(W,"master.m3u8"),O=zz(H,X,z,K);return await GZ(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 zz($,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 n$($,Z,Y,X,J){let Q=await KZ();if(!Q)return console.warn("[stx-media] ts-videos not installed, cannot generate DASH manifest"),null;try{let G=XZ($);if(!await R0(G))return null;let K=await M0(G),z=JZ($,QZ($)),W=b1(Y,`${z}-${K}-dash`);await p$(W,{recursive:!0});let U=Z.length>0?Z:zZ,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=b1(W,w.label);await p$(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=b1(W,"manifest.mpd"),V=Wz(L,F,H,q,_);await GZ(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 Wz($,Z,Y,X,J){let Q=YZ(Y),G=YZ(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 YZ($){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 zZ;var X3=y(()=>{S1();zZ=[{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 WZ,basename as Uz,extname as qz,join as _z}from"path";import{mkdir as Bz}from"fs/promises";async function UZ(){try{return await import("ts-videos")}catch{return null}}function jz($){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 Hz($){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 J3($){let Z=await UZ();if(!Z)return null;try{let Y=WZ($),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 qZ($,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 d$($,Z,Y);if(Q)return Q;try{let G=WZ($);if(!await R0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",z=Y.baseUrl||"/videos";await Bz(K,{recursive:!0});let W=await
|
|
1211
|
+
</MPD>`,K}function YZ($){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 zZ;var X3=y(()=>{S1();zZ=[{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 WZ,basename as Uz,extname as qz,join as _z}from"path";import{mkdir as Bz}from"fs/promises";async function UZ(){try{return await import("ts-videos")}catch{return null}}function jz($){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 Hz($){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 J3($){let Z=await UZ();if(!Z)return null;try{let Y=WZ($),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 qZ($,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 d$($,Z,Y);if(Q)return Q;try{let G=WZ($);if(!await R0(G))return{src:$,processed:!1,errors:[`Source file not found: ${$}`]};let K=Y.outputDir||"dist/videos",z=Y.baseUrl||"/videos";await Bz(K,{recursive:!0});let W=await M0(G),U=Uz($,qz($)),q={src:$,processed:!0,hash:W};X?.({percentage:5,stage:"analyzing"}),q.metadata=await J3(G)||void 0;let _={};if(Z.quality)_.bitrate=jz(Z.quality);if(Z.platform)Object.assign(_,Hz(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=_z(K,B);try{let H=await Oz(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 l$(G,B,K,z);if(j)q.poster=j}if(Y.thumbnails?.enabled){X?.({percentage:70,stage:"generating-thumbnails"});let B=await c$(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 i$(G,B.qualities||Y.streaming?.defaultQualities||[],K,z);if(j)q.streaming={...q.streaming,hls:j}}if(B.format==="dash"){let j=await n$(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 u$($,Z,q,Y),q}catch(G){return{src:$,processed:!1,errors:[`Processing failed: ${G}`]}}}async function Oz($,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 _Z=y(()=>{S1();r7();Y3();X3()});var BZ={};l(BZ,{setCachedVideoResult:()=>u$,processVideo:()=>qZ,getCachedVideoResult:()=>d$,generateThumbnails:()=>c$,generateSpriteSheet:()=>ZZ,generatePoster:()=>l$,generateHLSManifest:()=>i$,generateDASHManifest:()=>n$,clearVideoCache:()=>$Z,analyzeVideo:()=>J3,VideoProcessorCache:()=>h$});var jZ=y(()=>{_Z();Y3();X3();r7()});async function OZ(){try{return await Promise.resolve().then(() => (jZ(),BZ))}catch($){if(!HZ)console.warn("[stx-media] Video processor not available, some features disabled:",$),HZ=!0;return null}}async function o$($,Z={}){let Y=Z,X=$;if(X.process&&!X.skipProcessing){if(Y.tsVideosConfig?.enabled&&!Y.isDev)return Rz(X,Y)}if(Y.processedResult?.processed)return wZ($,Y.processedResult,Z);let J;if(X.generatePoster&&X.src&&!$.poster)J=await Nz(X,Y);let{src:Q,sources:G=[],poster:K,posterPlaceholder:z,controls:W=LZ,autoplay:U=!1,muted:q=!1,loop:_=!1,preload:B=FZ,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 Vz($,Z);if(F&&F!=="video")return Fz(Q||"",F,$);let I=G.length>0?G:Q?[{src:Q,type:VZ(Q)}]:[],E=[`id="${D}"`];if(W)E.push("controls");if(U)E.push("autoplay");if(q)E.push("muted");if(_)E.push("loop");if(j)E.push("playsinline");if(w)E.push("disablepictureinpicture");if(R)E.push("disableremoteplayback");if(A)E.push(`crossorigin="${A}"`);if(H){if(E.push(`data-preload="${B}"`),E.push('preload="none"'),N)E.push(`data-poster="${O0(N)}"`);E.push("data-stx-lazy")}else if(E.push(`preload="${B}"`),N)E.push(`poster="${O0(N)}"`);if(O)E.push(`width="${O}"`);if(V)E.push(`height="${V}"`);if(M)E.push(`class="${O0(M)}"`);if(T)E.push(`style="${O0(T)}"`);let k=I.map((P)=>{return` <source ${H?`data-src="${O0(P.src)}"`:`src="${O0(P.src)}"`} type="${P.type}"${P.media?` media="${P.media}"`:""} />`}).join(`
|
|
1212
1212
|
`),S=`<video ${E.join(" ")}>
|
|
1213
1213
|
${k}
|
|
1214
1214
|
Your browser does not support the video tag.
|
|
@@ -2317,7 +2317,7 @@ else { this.removeAttribute('${E}'); }`:`this.setAttribute('${E}', ${D.type==="o
|
|
|
2317
2317
|
}
|
|
2318
2318
|
else {
|
|
2319
2319
|
this.removeAttribute('${E}');
|
|
2320
|
-
}`:"",b=D.observer?`this.${D.observer}(value, oldValue);`:"",
|
|
2320
|
+
}`:"",b=D.observer?`this.${D.observer}(value, oldValue);`:"",P=D.render!==!1?"this._scheduleRender();":"";return`
|
|
2321
2321
|
get ${T}(): ${I} {
|
|
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
|
+
${P}
|
|
2331
2331
|
this.dispatchEvent(new CustomEvent('${T}-changed', {
|
|
2332
2332
|
detail: { value, oldValue },
|
|
2333
2333
|
bubbles: true
|
|
@@ -2933,8 +2933,8 @@ ${U}
|
|
|
2933
2933
|
customElements.define('${Z}', ${G});
|
|
2934
2934
|
`}async function lZ($,Z,Y,X){if(Z.length<1)return r("WebComponent","@webcomponent directive requires at least the tag name parameter",c.INVALID_DIRECTIVE_SYNTAX);let J=Z[0].replace(/['"]/g,""),G=(Y.__stx_options||{}).componentsDir||"components",K=[q1.join(q1.dirname(X),G,`${J}.stx`),q1.join(process.cwd(),G,`${J}.stx`),q1.join(q1.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`,c.FILE_NOT_FOUND);let W=qW(z,J);return`<script type="module">
|
|
2935
2935
|
${_W(W)}
|
|
2936
|
-
</script>`}var F3;var cZ=y(()=>{Q1();H0();F3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var pZ={};l(pZ,{timingPlugin:()=>LW,pluginManager:()=>BW,definePlugin:()=>J4,debugPlugin:()=>OW,createVariablesPlugin:()=>FW,createFilterPlugin:()=>HW,createDirectivePlugin:()=>jW,PluginManager:()=>w3});function J4($){return $}class w3{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 jW($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function HW($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function FW($){return J4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var BW,OW,LW;var iZ=y(()=>{BW=new w3;OW=J4({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)}}),LW=J4({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 oZ={};l(oZ,{validateConfig:()=>RW,loadStxConfig:()=>G4,defineStxConfig:()=>AW,defaultConfig:()=>P1,config:()=>R3});import A3 from"fs";import M0 from"path";import{loadConfigWithResult as VW}from"bunfig";function wW($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=M0.join(process.cwd(),"resources","views"),J=M0.join(process.cwd(),"resources","layouts");if(A3.existsSync(X)&&A3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=M0.join(process.cwd(),"resources","views","pages");if(A3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function G4($){if(!$){if(G5)return G5;if(Q4)return Q4}let Z=$?M0.resolve($):process.cwd(),Y=nZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await VW({name:"stx",alias:"ui",cwd:Z,defaultConfig:P1,verbose:!1})).config,G=wW(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!M0.isAbsolute(Q.partialsDir))Q.partialsDir=M0.join(K,Q.partialsDir);if(Q.componentsDir&&!M0.isAbsolute(Q.componentsDir))Q.componentsDir=M0.join(K,Q.componentsDir);if(Q.layoutsDir&&!M0.isAbsolute(Q.layoutsDir))Q.layoutsDir=M0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (iZ(),pZ)),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=M0.dirname(Q0.resolve(q))}catch{let L=M0.resolve(process.cwd(),q);B=await import(L),j=M0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=M0.resolve(j,H.components);z.push(L)}if(H.pages){let L=M0.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(nZ.set(Z,X),!$)Q4=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function AW($){return $}function RW($){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 P1,G5=null,nZ,Q4=null,R3;var f5=y(()=>{B7();F7();T7();M7();E7();e8();G3();TZ();L3();cZ();P1={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:I7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:lZ,hasEndTag:!1,description:"Include a web component in the template"},O$,L$,H3,O3,j7,O7,L7,H7,L8,w8,t8,Q3,...K3],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}};nZ=new Map;R3=new Proxy(P1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!Q4)G4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var bW={};l(bW,{resetCssCache:()=>IW,resetCrosswindCache:()=>EW,rebuildCrosswindCSS:()=>kW,loadCrosswindConfig:()=>I3,loadCrosswind:()=>D3,injectCrosswindCSS:()=>E3,getCachedCSS:()=>SW,generateCrosswindCSS:()=>tZ,extractClassNames:()=>aZ,buildCrosswindCSS:()=>rZ});import z4 from"fs";import Y0 from"path";function M3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function N3($,Z){if(G1.has($))G1.delete($);else if(G1.size>=NW)G1.delete(G1.keys().next().value);G1.set($,Z)}async function TW($){if(!_1)return null;try{let Z=Bun.file(Y0.join(_1,`cw-${M3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function MW($,Z){if(!_1)return;try{if(!z4.existsSync(_1))z4.mkdirSync(_1,{recursive:!0});await Bun.write(Y0.join(_1,`cw-${M3($)}.css`),Z)}catch{}}async function sZ($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function DW(){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 D3(){if(T3)return z5;T3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await sZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return z5}}let Z=DW();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await sZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return z5}}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 IW(){G1.clear()}function EW(){z5=null,T3=!1,l0=null,g5="",G1.clear(),K4=null}async function I3($){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 rZ($){if(K5)return g5;K5=!0;try{let Z=await D3();if(!Z||!Z.build)return K5=!1,"";if(!l0)l0=await I3($);if(!l0)return K5=!1,"";let Y=Z.defaultConfig?.theme||{},X=l0.theme||{},J={...Z.defaultConfig,...l0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(g5=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(!z4.existsSync(W))z4.mkdirSync(W,{recursive:!0});await Bun.write(z,G.css)}return K5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),K5=!1,g5}}async function kW($){l0=null,await rZ($)}function SW(){return g5}function aZ($){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 tZ($,Z){try{let Y=await D3();if(!Y)return"";let X=aZ($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!_1)_1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${K4||"default"}::${Q}`,K=G1.get(G);if(K!==void 0)return N3(G,K),K;let z=await TW(G);if(z!==null)return N3(G,z),z;if(!l0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (f5(),oZ)),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{}l0=w||await I3(J);try{K4=M3(JSON.stringify(l0??{}))}catch{K4="unhashable"}}let W=Y.defaultConfig||Y.config,U=l0||{},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 I=D.startsWith("dark:"),S=`.${(I?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 F3;var cZ=y(()=>{Q1();H0();F3={strategy:"attribute",attributeName:"data-v",preserveOriginal:!0}});var pZ={};l(pZ,{timingPlugin:()=>LW,pluginManager:()=>BW,definePlugin:()=>J4,debugPlugin:()=>OW,createVariablesPlugin:()=>FW,createFilterPlugin:()=>HW,createDirectivePlugin:()=>jW,PluginManager:()=>w3});function J4($){return $}class w3{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 jW($,Z,Y={}){return{name:$,...Y,registerDirectives:()=>Z}}function HW($,Z,Y={}){return{name:$,...Y,registerFilters:()=>Z}}function FW($){return J4({name:"stx-variables",version:"1.0.0",description:"Adds predefined variables to template context",beforeProcess(Z){return{context:{...Z.context,...$}}}})}var BW,OW,LW;var iZ=y(()=>{BW=new w3;OW=J4({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)}}),LW=J4({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 oZ={};l(oZ,{validateConfig:()=>RW,loadStxConfig:()=>G4,defineStxConfig:()=>AW,defaultConfig:()=>P1,config:()=>R3});import A3 from"fs";import D0 from"path";import{loadConfigWithResult as VW}from"bunfig";function wW($,Z){let Y=Z||"pages";if($)return{root:$,pagesDir:Y};let X=D0.join(process.cwd(),"resources","views"),J=D0.join(process.cwd(),"resources","layouts");if(A3.existsSync(X)&&A3.existsSync(J))return{root:"resources",pagesDir:"views"};let Q=D0.join(process.cwd(),"resources","views","pages");if(A3.existsSync(Q))return{root:"resources/views",pagesDir:Y};return{root:".",pagesDir:Y}}async function G4($){if(!$){if(G5)return G5;if(Q4)return Q4}let Z=$?D0.resolve($):process.cwd(),Y=nZ.get(Z);if(Y)return Y;let X=(async()=>{let Q=(await VW({name:"stx",alias:"ui",cwd:Z,defaultConfig:P1,verbose:!1})).config,G=wW(Q.root,Q.pagesDir);if(Q.root=G.root,Q.pagesDir=G.pagesDir,Q.root&&Q.root!=="."){let K=Q.root;if(Q.partialsDir&&!D0.isAbsolute(Q.partialsDir))Q.partialsDir=D0.join(K,Q.partialsDir);if(Q.componentsDir&&!D0.isAbsolute(Q.componentsDir))Q.componentsDir=D0.join(K,Q.componentsDir);if(Q.layoutsDir&&!D0.isAbsolute(Q.layoutsDir))Q.layoutsDir=D0.join(K,Q.layoutsDir)}if(Q.plugins&&Q.plugins.length>0){let{pluginManager:K}=await Promise.resolve().then(() => (iZ(),pZ)),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=D0.dirname(Q0.resolve(q))}catch{let L=D0.resolve(process.cwd(),q);B=await import(L),j=D0.dirname(L)}let H=B.default||B;if(K.register(H,Q),H.components){let L=D0.resolve(j,H.components);z.push(L)}if(H.pages){let L=D0.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(nZ.set(Z,X),!$)Q4=X,X.then((J)=>{G5=J}).catch(()=>{});return X}function AW($){return $}function RW($){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 P1,G5=null,nZ,Q4=null,R3;var f5=y(()=>{B7();F7();T7();M7();E7();e8();G3();TZ();L3();cZ();P1={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:I7,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:lZ,hasEndTag:!1,description:"Include a web component in the template"},O$,L$,H3,O3,j7,O7,L7,H7,L8,w8,t8,Q3,...K3],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}};nZ=new Map;R3=new Proxy(P1,{get($,Z){if(G5&&Z in G5)return G5[Z];if(!Q4)G4().catch((Y)=>{console.warn("[stx] Failed to load config file:",Y?.message||Y)});return $[Z]}})});var bW={};l(bW,{resetCssCache:()=>IW,resetCrosswindCache:()=>EW,rebuildCrosswindCSS:()=>kW,loadCrosswindConfig:()=>I3,loadCrosswind:()=>D3,injectCrosswindCSS:()=>E3,getCachedCSS:()=>SW,generateCrosswindCSS:()=>tZ,extractClassNames:()=>aZ,buildCrosswindCSS:()=>rZ});import z4 from"fs";import Y0 from"path";function M3($){return Bun.hash($).toString(16).padStart(16,"0").slice(0,16)}function N3($,Z){if(G1.has($))G1.delete($);else if(G1.size>=NW)G1.delete(G1.keys().next().value);G1.set($,Z)}async function TW($){if(!_1)return null;try{let Z=Bun.file(Y0.join(_1,`cw-${M3($)}.css`));if(!await Z.exists())return null;return await Z.text()}catch{return null}}async function MW($,Z){if(!_1)return;try{if(!z4.existsSync(_1))z4.mkdirSync(_1,{recursive:!0});await Bun.write(Y0.join(_1,`cw-${M3($)}.css`),Z)}catch{}}async function sZ($){try{let Z=await import($);if(Z&&Z.CSSGenerator)return{CSSGenerator:Z.CSSGenerator,config:Z.config,build:Z.build,defaultConfig:Z.defaultConfig}}catch{}return null}function DW(){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 D3(){if(T3)return z5;T3=!0;try{let $=["@cwcss/crosswind","@cwcss/crosswind/dist/index.js","@stacksjs/crosswind","@stacksjs/crosswind/dist/index.js"];for(let Y of $){let X=await sZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded`);return z5}}let Z=DW();for(let Y of Z)if(await Bun.file(Y).exists()){let X=await sZ(Y);if(X){if(z5=X,!process.env.STACKS_DEV_QUIET)console.log(`${K0.green}[Crosswind]${K0.reset} CSS engine loaded from ${Y0.dirname(Y0.dirname(Y))}`);return z5}}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 IW(){G1.clear()}function EW(){z5=null,T3=!1,l0=null,g5="",G1.clear(),K4=null}async function I3($){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 rZ($){if(K5)return g5;K5=!0;try{let Z=await D3();if(!Z||!Z.build)return K5=!1,"";if(!l0)l0=await I3($);if(!l0)return K5=!1,"";let Y=Z.defaultConfig?.theme||{},X=l0.theme||{},J={...Z.defaultConfig,...l0,theme:{...Y,...X,extend:{...Y.extend||{},...X.extend||{}}}},Q=performance.now(),G=await Z.build(J),K=performance.now()-Q;if(g5=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(!z4.existsSync(W))z4.mkdirSync(W,{recursive:!0});await Bun.write(z,G.css)}return K5=!1,G.css}catch(Z){return console.error(`${K0.red}[Crosswind]${K0.reset} Build error:`,Z),K5=!1,g5}}async function kW($){l0=null,await rZ($)}function SW(){return g5}function aZ($){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 tZ($,Z){try{let Y=await D3();if(!Y)return"";let X=aZ($);if(X.size===0)return"";let J=Z?Y0.resolve(Z):process.cwd();if(!_1)_1=Y0.join(J,".stx/cache");let Q=[...X].sort().join(" "),G=`${K4||"default"}::${Q}`,K=G1.get(G);if(K!==void 0)return N3(G,K),K;let z=await TW(G);if(z!==null)return N3(G,z),z;if(!l0){let w=null;try{let{loadStxConfig:R}=await Promise.resolve().then(() => (f5(),oZ)),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{}l0=w||await I3(J);try{K4=M3(JSON.stringify(l0??{}))}catch{K4="unhashable"}}let W=Y.defaultConfig||Y.config,U=l0||{},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 I=D.startsWith("dark:"),S=`.${(I?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 P=A[b].trim();if(P===`${S} {`||P.startsWith(`${S} {`)){let d=b,f="";while(d<A.length){if(f+=A[d],A[d].includes("}"))break;d++}let u=f.match(/\{([^}]+)\}/);if(u)if(I)T.push(u[1].trim());else M.push(u[1].trim());break}}}if(M.length)O+=`
|
|
2938
2938
|
.${w} { ${M.join(" ")} }`;if(T.length)O+=`
|
|
2939
2939
|
@media (prefers-color-scheme: dark) { .dark .${w} { ${T.join(" ")} } }`}return N3(G,O),MW(G,O),O}catch(Y){return console.warn("Failed to generate Crosswind CSS:",Y),""}}async function E3($,Z){let Y=await tZ($,Z);if(!Y)return $;let X=`<style data-crosswind="generated">
|
|
2940
2940
|
${Y}
|
|
@@ -3770,7 +3770,7 @@ ${Y}
|
|
|
3770
3770
|
</script>`}function F2($,Z,Y){if(L2=0,!QU($))return $;let X=tW($);if(X.length===0)return $;let J=JU($,X),Q=XU(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 JU($,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*["']${q4(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*["']${q4(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*"${q4(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*'${q4(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 QU($){return/x-data\s*=\s*["']/.test($)}var L2=0,aW=0;var V2=y(()=>{a0()});import GU from"fs";import y3 from"path";import{createHighlighter as KU}from"ts-syntax-highlighter";async function zU($,Z={}){try{if(!await i($))throw Error(`Markdown file not found: ${$}`);let X=(await GU.promises.stat($)).mtime.getTime();if(Z.cache&&C3.has($)){let q=C3.get($);if(q.updatedAt>=X)return{content:q.content,data:q.data}}let J=await Bun.file($).text(),{data:Q,content:G}=N8(J),K=Z.markdown||R3.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},W=y5(G,{gfm:!0});if(K.syntaxHighlighting?.enabled&&K.syntaxHighlighting?.serverSide)W=await WU(W,K.syntaxHighlighting?.defaultTheme||"github-dark",K.syntaxHighlighting?.highlightUnknownLanguages||!1);let U={content:W,data:Q||{}};if(Z.cache)C3.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:J0("Markdown File",`Error reading/parsing markdown file: ${X}`,$,"",0,""),data:{}}}}async function WU($,Z,Y){let X=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!_4)try{_4=await KU({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(!_4.getSupportedLanguages().includes(_))return K;return(await _4.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 w2($,Z,Y="",X={}){return await UU($,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(G,K,z,W)=>{try{let U=K;if(!y3.isAbsolute(K))U=y3.resolve(y3.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 zU(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 J0("Markdown File",`Error including markdown file: ${q}`,Y,$,W,G)}})}async function UU($,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 C3,_4=null;var A2=y(()=>{f5();H0();C3=new Map});function j1($,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 R2=y(()=>{V0()});class B4{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 L0($,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 N2($,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 P3($){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 H1($,Z){let Y=qU($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function qU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=L0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function v1($,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 T2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"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=H1(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 h5($){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=T2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function j4($,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=L0($,"(",")",z);if(W===-1){Q=J.exec($);continue}let U=$.slice(z+1,W),q=W+1,_=v1($,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 v3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"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=H1(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 M2=()=>{};function _U($){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=BU($,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 BU($,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 jU($){let Z=P3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=HU(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function HU($){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=L0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=E2(G);return{name:X,args:K}}function E2($){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 OU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=L0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function LU($){let Z=[],X=new B4($).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,_=D2(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==="{"?"}":"]",_=L0($,W.value,q,U);if(_!==-1){let B=$.slice(U,_+1);if(J=I2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=D2(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 _=L0($,"{","}",q);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=I2(X,_+1)}}}else J++}return Z}function D2($,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 I2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var k2=()=>{};var H4=y(()=>{M2();k2()});function FU($,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=v3(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}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function x1($,Z,Y){let X=$;X=FU(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=H1(X,K+7);if(!z)break;let W=z.endPos,U=v1(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=f3(X,Z,Y),X=g3(X,Z,Y),X=x3(X,Z);let J=()=>{let Q=h5(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)}`,c.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}`,c.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function S2($){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 x3($,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=S2(_);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?j1(`auth?.check && auth?.user?.[${U}]`,Z):j1("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=S2(_);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?j1(`!auth?.check || !auth?.user?.[${U}]`,Z):j1("!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=j1(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=[],I=0;for(let b=0;b<O.length;b++){let C=O[b];if(D.push({content:F.slice(I,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(I,C.pos)},I=C.pos+`@${W}`.length+f.paramsEnd,D.push({content:"",ability:f.ability,type:f.type,id:f.id}),D.pop();let u=O[b+1],o=u?u.pos:F.length;D.push({content:F.slice(I,o),ability:f.ability,type:f.type,id:f.id}),I=o}}else I=C.pos+5}if(I<F.length){let b=D[D.length-1];if(O.length>0&&O[O.length-1].type==="else")D.push({content:F.slice(I),isFinalElse:!0});else if(D.length===0)D.push({content:F.slice(I)})}let E=Q(j.ability,j.type,j.id),k=K==="can"?E:!E,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 f3($,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=H1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=v1(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}`,c.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=j1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=j1(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 g3($,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 E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,W=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,q.lastIndex=A;let E=U.exec(j),k=q.exec(j),S=E?E.index:1/0,b=k?k.index:1/0;if(S<b)V++,A=S+E[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 E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let D;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);D=W?E:k}else D=W?R:"";let I=`@${z}`.length;j=j.substring(0,F)+D+j.substring(w+I),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 O4=y(()=>{R2();Q1();H4();V0()});function b2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function f1($,Z){if(!$)return Z?.nonceGenerator?.()??b2();let Y=h3.get($);if(!Y)Y=Z?.nonceGenerator?.()??b2(),h3.set($,Y);return Y}function vA($){h3.delete($)}function y2($,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 u3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${y2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function xA($){return{enabled:!0,directives:{strict:VU,moderate:d3,relaxed:wU,api:AU}[$]||d3,useNonce:$==="strict",addMetaTag:!0}}function fA($,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 C2($,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?f1(Y,Z):void 0,J=u3(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 L0($,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 N2($,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 P3($){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 H1($,Z){let Y=qU($,Z);return Y.ok?{expression:Y.expression,endPos:Y.endPos}:null}function qU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return{ok:!1,reason:"missing-open-paren",pos:Y};let X=L0($,"(",")",Y);if(X===-1)return{ok:!1,reason:"unclosed-paren",pos:Y};return{ok:!0,expression:$.slice(Y+1,X),endPos:X+1}}function v1($,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 T2($,Z){let Y=$.slice(Z).match(/^@if\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"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=H1(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 h5($){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=T2($,X.index);if(Q)Z.push(Q),Y.lastIndex=Q.end;X=Y.exec($)}return Z}function j4($,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=L0($,"(",")",z);if(W===-1){Q=J.exec($);continue}let U=$.slice(z+1,W),q=W+1,_=v1($,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 v3($,Z){let Y=$.slice(Z).match(/^@switch\s*/);if(!Y)return null;let X=Z+Y[0].length,J=H1($,X);if(!J)return null;let Q=J.endPos,G=v1($,"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=H1(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 M2=()=>{};function _U($){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=BU($,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 BU($,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 jU($){let Z=P3($);if(Z.length===0)return{baseExpression:"",filters:[]};let Y=Z[0],X=[];for(let J=1;J<Z.length;J++){let Q=HU(Z[J]);if(Q)X.push(Q)}return{baseExpression:Y,filters:X}}function HU($){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=L0(Z,"(",")",Y);if(Q===-1)return{name:X,args:[]};let G=Z.slice(J,Q),K=E2(G);return{name:X,args:K}}function E2($){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 OU($,Z){let Y=Z;while(Y<$.length&&/\s/.test($[Y]))Y++;if($[Y]!=="(")return null;let X=L0($,"(",")",Y);if(X===-1)return null;return{params:$.slice(Y+1,X),endPos:X+1}}function LU($){let Z=[],X=new B4($).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,_=D2(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==="{"?"}":"]",_=L0($,W.value,q,U);if(_!==-1){let B=$.slice(U,_+1);if(J=I2(X,_+1),J<X.length&&X[J].type==="OPERATOR"&&X[J].value==="="){J++;let j=J<X.length?X[J].start:$.length,H=D2(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 _=L0($,"{","}",q);if(_!==-1)Z.push({type:"function",name:U,value:$.slice(z,_+1).replace(/^export\s+/,""),exported:G,start:z,end:_+1}),J=I2(X,_+1)}}}else J++}return Z}function D2($,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 I2($,Z){for(let Y=0;Y<$.length;Y++)if($[Y].start>=Z)return Y;return $.length}var k2=()=>{};var H4=y(()=>{M2();k2()});function FU($,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=v3(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}`,c.EVALUATION_ERROR);X=X.substring(0,G)+U+X.substring(K.end);break}}return X}function x1($,Z,Y){let X=$;X=FU(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=H1(X,K+7);if(!z)break;let W=z.endPos,U=v1(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=f3(X,Z,Y),X=g3(X,Z,Y),X=x3(X,Z);let J=()=>{let Q=h5(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)}`,c.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}`,c.EVALUATION_ERROR);X=X.substring(0,K.start)+U+X.substring(K.end)}}return!0};while(!0){let Q=X;if(!J())break;if(X===Q)break}return X}function S2($){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 x3($,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=S2(_);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?j1(`auth?.check && auth?.user?.[${U}]`,Z):j1("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=S2(_);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?j1(`!auth?.check || !auth?.user?.[${U}]`,Z):j1("!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=j1(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,P)=>b.pos-P.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=[],I=0;for(let b=0;b<O.length;b++){let P=O[b];if(D.push({content:F.slice(I,P.pos),ability:void 0}),P.type==="elseDirective"){let d=F.slice(P.pos+`@${W}`.length),f=G(d);if(f){D[D.length-1]={content:F.slice(I,P.pos)},I=P.pos+`@${W}`.length+f.paramsEnd,D.push({content:"",ability:f.ability,type:f.type,id:f.id}),D.pop();let u=O[b+1],o=u?u.pos:F.length;D.push({content:F.slice(I,o),ability:f.ability,type:f.type,id:f.id}),I=o}}else I=P.pos+5}if(I<F.length){let b=D[D.length-1];if(O.length>0&&O[O.length-1].type==="else")D.push({content:F.slice(I),isFinalElse:!0});else if(D.length===0)D.push({content:F.slice(I)})}let E=Q(j.ability,j.type,j.id),k=K==="can"?E:!E,S="";if(k)S=D[0]?.content||"";else{let b=!1;for(let P=1;P<D.length;P++){let d=D[P];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 P=D[D.length-1];if(P.isFinalElse)S=P.content}}Y=Y.substring(0,_)+S+Y.substring(L+`@${z}`.length),U=!0}}return Y}function f3($,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=H1(Q,B+`@${G}`.length);if(!j)break;let H=j.endPos,L=v1(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}`,c.EVALUATION_ERROR);Q=Q.substring(0,B)+M+Q.substring(L+`@${K}`.length);break}}return Q}return X=J(X,"isset","endisset",(Q)=>{let G=j1(Q,Z);return G!==void 0&&G!==null},"Isset"),X=J(X,"empty","endempty",(Q)=>{let G=j1(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 g3($,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 E=j.substring(O).match(/^\s*\(\s*(['"])([^'"]+)\1\s*\)/);if(!E)break;O+=E[0].length,W=J===E[2]}let V=1,A=O,w=-1;while(V>0&&A<j.length){U.lastIndex=A,q.lastIndex=A;let E=U.exec(j),k=q.exec(j),S=E?E.index:1/0,b=k?k.index:1/0;if(S<b)V++,A=S+E[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 E=R.indexOf("@",T);if(E===-1)break;let k=R.substring(E);if(_.test(k)){M++,T=E+1;continue}if(B.test(k)){M--,T=E+1;continue}if(M===0&&/^@else(?![a-z])/.test(k)){N=E;break}T=E+1}let D;if(N!==-1){let E=R.slice(0,N),k=R.slice(N+5);D=W?E:k}else D=W?R:"";let I=`@${z}`.length;j=j.substring(0,F)+D+j.substring(w+I),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 O4=y(()=>{R2();Q1();H4();V0()});function b2($=16){let Z=new Uint8Array($);return crypto.getRandomValues(Z),btoa(String.fromCharCode(...Z))}function f1($,Z){if(!$)return Z?.nonceGenerator?.()??b2();let Y=h3.get($);if(!Y)Y=Z?.nonceGenerator?.()??b2(),h3.set($,Y);return Y}function vA($){h3.delete($)}function y2($,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 u3($,Z){return`<meta http-equiv="Content-Security-Policy" content="${y2($,Z).replace(/&/g,"&").replace(/"/g,""")}">`}function xA($){return{enabled:!0,directives:{strict:VU,moderate:d3,relaxed:wU,api:AU}[$]||d3,useNonce:$==="strict",addMetaTag:!0}}function fA($,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 C2($,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?f1(Y,Z):void 0,J=u3(Z.directives,X);return $.replace(/<head([^>]*)>/,`<head$1>
|
|
3774
3774
|
${J}`)}function gA($,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 P2($,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?f1(Z,Q):void 0;return u3(Q.directives,G)}),J=J.replace(/@cspNonce\b/g,()=>{if(!Q?.enabled||!Q.useNonce)return"";return f1(Z,Q)}),Q?.enabled&&Q.useNonce)Z.cspNonce=f1(Z,Q);return J}function hA(){return[RU,NU]}function dA($){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 TU($=!1){return $?"Content-Security-Policy-Report-Only":"Content-Security-Policy"}function uA($,Z){if(!$.enabled)return{};let Y=$.useNonce?f1(Z,$):void 0,X=y2($.directives,Y);return{[TU($.reportOnly)]:X}}var h3,VU,d3,wU,AU,RU,NU,mA;var v2=y(()=>{h3=new WeakMap;VU={"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},d3={"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},wU={"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'"]},AU={"default-src":["'none'"],"frame-ancestors":["'none'"]};RU={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?f1(Y,Q):void 0;return u3(Q.directives,G)},hasEndTag:!1,description:"Insert Content-Security-Policy meta tag"},NU={name:"cspNonce",handler:($,Z,Y,X)=>{let Q=Y.__stx_options?.csp;if(!Q?.enabled||!Q.useNonce)return"";return f1(Y,Q)},hasEndTag:!1,description:"Output the current CSP nonce value"};mA={enabled:!1,reportOnly:!1,directives:d3,useNonce:!1,addMetaTag:!0}});import{Buffer as x2}from"buffer";import f2 from"crypto";function DU($=MU){let Z=f2.randomBytes(Math.ceil($/2)).toString("hex").slice(0,$);return W5=Z,Z}function IU(){if(!W5)DU();return W5}function iA(){W5=null}function nA($){W5=$}function EU($=g2){let Z=IU();return`<input type="hidden" name="${$}" value="${Z}">`}function h2($){return $.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(Z,Y,X)=>{return EU(X||g2)})}function oA($,Z){let Y=Z??W5;if(!Y)return!1;let X=x2.from($),J=x2.from(Y);if(X.length!==J.length)return!1;return f2.timingSafeEqual(X,J)}var MU=40,g2="_token",W5=null;var d2=()=>{};async function u2($,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 kU(J,Q,Z,Y,X);else J=await SU(J,Q,Z,Y,X)}return J}async function kU($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=`@${Q}`,z=`@end${Q}`,W=$,U=E1(`${K}(?:\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\))?([\\s\\S]*?)${z}`,"g"),q=[],_=U.exec(W);while(_!==null){let[B,j="",H=""]=_,L=_.index||0;try{let F=j?m2(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}`,c.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 SU($,Z,Y,X,J){let{name:Q,handler:G}=Z,K=$,z=E1(`@${Q}\\s*\\(([^()]*(?:\\([^)]*\\)[^()]*)*)\\)`,"g"),W=[],U=z.exec(K);while(U!==null){let[B,j=""]=U,H=U.index||0;try{let L=m2(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}`,c.EVALUATION_ERROR),startIndex:H})}U=z.exec(K)}let q=E1(`@${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}`,c.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 m2($){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 l2=y(()=>{Q1();t1()});var m3={};l(m3,{useTitle:()=>xU,useSeoMeta:()=>F4,usePageTitle:()=>xU,useHead:()=>h1,resetHead:()=>CU,renderHtmlAttrs:()=>gU,renderHead:()=>fU,renderBodyAttrs:()=>hU,processTitleDirective:()=>mU,processMetaDirective:()=>lU,processHeadDirective:()=>uU,getPageMeta:()=>yU,getHead:()=>d5,definePageMeta:()=>vU,applyHead:()=>dU});function d5(){return O1}function yU(){return L4}function CU(){O1={},bU.length=0,L4={}}function h1($){O1=PU(O1,$)}function PU($,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 F4($){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});h1({title:$.title,titleTemplate:$.titleTemplate,meta:Z,link:K})}function vU($){if(L4={...L4,...$},$.title||$.description)F4({title:$.title,description:$.description})}function xU($){let Z=typeof $==="function"?$():$;h1({title:Z})}function fU($=O1){let Z=[];if($.title){let Y=$.title;if($.titleTemplate)Y=typeof $.titleTemplate==="function"?$.titleTemplate(Y):$.titleTemplate.replace("%s",Y);Z.push(`<title>${g1(Y)}</title>`)}if($.base){let Y=Object.entries($.base).map(([X,J])=>`${X}="${g1(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}="${g1(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}="${g1(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}="${g1(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 gU($=O1){if(!$.htmlAttrs)return"";return Object.entries($.htmlAttrs).map(([Z,Y])=>`${Z}="${g1(Y)}"`).join(" ")}function hU($=O1){if(!$.bodyAttrs)return"";return Object.entries($.bodyAttrs).map(([Z,Y])=>`${Z}="${g1(Y)}"`).join(" ")}function g1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function dU($=O1){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 uU($){let Z="";return{content:$.replace(/@head\s*([\s\S]*?)@endhead/g,(X,J)=>{return Z+=J.trim()+`
|
|
3776
3776
|
`,""}),headContent:Z.trim()}}function mU($,Z){return $.replace(/@title\s*\(\s*(?:(['"`])(.+?)\1|([^)]+))\s*\)/g,(Y,X,J,Q)=>{let G=X?J:Z[(Q||"").trim()]??Q;return h1({title:G}),""})}function lU($,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 h1({meta:[q]}),""})}var O1,bU,L4;var u5=y(()=>{O1={},bU=[],L4={}});import cU from"crypto";function w0($){return String($??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function pU($){return{...l3,...$.forms?.classes}}function V4($,Z,Y,X){let J=$||Z;return Y?`${J} ${X}`:J}function iU(){return cU.randomUUID()}function ZR($,Z,Y,X){let J=pU(X),Q=$;return Q=oU(Q,Z),Q=c5(Q,Z),Q=c3(Q,Z,J),Q=p3(Q,Z,J),Q}function c5($,Z){let Y=$;return Y=Y.replace(/@csrf/g,()=>{if(!Z.csrf||typeof Z.csrf!=="object"){let X=iU();Z.csrf={token:X}}if(Z.csrf.field)return Z.csrf.field;if(Z.csrf.token)return`<input type="hidden" name="_token" value="${w0(Z.csrf.token)}">`;return'<input type="hidden" name="_token" value="">'}),Y=Y.replace(/@method\(['"]([^'"]+)['"]\)/g,(X,J)=>{let Q=J.toUpperCase();if(J&&!["GET","POST"].includes(Q))return`<input type="hidden" name="_method" value="${w0(Q)}">`;return X}),Y}function c3($,Z,Y=l3){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||"",_=L1(W),B=U.toUpperCase(),j=["GET","POST"].includes(B)?B:"POST",H=`<form method="${w0(j)}" action="${w0(q)}"${_?` ${_}`:""}>`;if(H+=`
|
|
@@ -4020,8 +4020,8 @@ else {
|
|
|
4020
4020
|
${z?`{${z}}`:"{}"}
|
|
4021
4021
|
</script>
|
|
4022
4022
|
</div>`}}});var WY={};l(WY,{warnUnbalancedTags:()=>Y6,findUnbalancedTags:()=>zY});function F1($){return $.replace(/[^\n]/g," ")}function zY($){let Z=$.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,F1).replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,F1).replace(/<!--[\s\S]*?-->/g,F1).replace(/\{\{\{[\s\S]*?\}\}\}/g,F1).replace(/\{\{[\s\S]*?\}\}/g,F1).replace(/\{!![\s\S]*?!!\}/g,F1).replace(/"[^"]*"/g,F1).replace(/'[^']*'/g,F1),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(dq.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(uq.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 Y6($,Z){let Y;try{Y=zY($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(KY.has(X))return;KY.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 dq,uq,KY;var X6=y(()=>{dq=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),uq=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);KY=new Set});import h0 from"path";import J6 from"fs";function UY($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function qY($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class _Y{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(),UY(J),qY(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${UY(J)}.stx`,`${qY(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=h0.resolve(h0.dirname(Z),`${J}.stx`);if(await i(B))return B;return null}let K=[],z=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(h0.join(h0.dirname(W),"components"));if(z)K.push(z);let U=h0.join(h0.dirname(Z),"components");if(!K.includes(U))K.push(U);let q=process.cwd(),_=[h0.resolve(q,"src/components"),h0.resolve(q,"components"),h0.resolve(import.meta.dir,"components")];for(let B of _)if(!K.includes(B))K.push(B);for(let B of K){if(!B)continue;for(let j of G){let H=h0.join(B,j);if(await i(H))return H}try{if(!J6.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=J6.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=h0.join(B,L.name);for(let O of G){let V=h0.join(F,O);if(await i(V))return V}}}catch{}}return null}}var S0;var Q6=y(()=>{H0();S0=new _Y});function V1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function mq($){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 G6;var K6=y(()=>{G6={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=mq($),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="${V1(X.value)}"`);else z.push(`href="${V1(X.value)}"`);if(J)z.push(`class="${V1(J)}"`);if(z.push("data-stx-link"),z.push(`data-stx-active-class="${V1(Q)}"`),z.push(`data-stx-exact-active-class="${V1(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(V1(U))}else z.push(`${V1(U)}="${V1(q)}"`)}return`<a ${z.join(" ")}>${Z}</a>`}}});function _0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function
|
|
4024
|
-
`}if(V){let S=[];if(U==="avif"||U==="auto"){let b=o5(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(uq.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 Y6($,Z){let Y;try{Y=zY($)}catch{return}if(Y.length===0)return;let X=`${Z}:${$.length}`;if(KY.has(X))return;KY.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 dq,uq,KY;var X6=y(()=>{dq=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),uq=new Set(["html","head","body","p","li","dt","dd","rt","rp","option","optgroup","thead","tbody","tfoot","tr","td","th","colgroup","caption"]);KY=new Set});import h0 from"path";import J6 from"fs";function UY($){return $.split("-").map((Z)=>Z.charAt(0).toUpperCase()+Z.slice(1)).join("")}function qY($){return $.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}class _Y{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(),UY(J),qY(J)];for(let j of B)if(Q.has(j))return Q.get(j)}let G=[...new Set([`${J}.stx`,`${UY(J)}.stx`,`${qY(J)}.stx`])];if(J.startsWith("./")||J.startsWith("../")){let B=h0.resolve(h0.dirname(Z),`${J}.stx`);if(await i(B))return B;return null}let K=[],z=Y.componentsDir||"",W=X?.__originalFilePath;if(W)K.push(h0.join(h0.dirname(W),"components"));if(z)K.push(z);let U=h0.join(h0.dirname(Z),"components");if(!K.includes(U))K.push(U);let q=process.cwd(),_=[h0.resolve(q,"src/components"),h0.resolve(q,"components"),h0.resolve(import.meta.dir,"components")];for(let B of _)if(!K.includes(B))K.push(B);for(let B of K){if(!B)continue;for(let j of G){let H=h0.join(B,j);if(await i(H))return H}try{if(!J6.statSync(B,{throwIfNoEntry:!1})?.isDirectory())continue;let H=J6.readdirSync(B,{withFileTypes:!0});for(let L of H)if(L.isDirectory()){let F=h0.join(B,L.name);for(let O of G){let V=h0.join(F,O);if(await i(V))return V}}}catch{}}return null}}var S0;var Q6=y(()=>{H0();S0=new _Y});function V1($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function mq($){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 G6;var K6=y(()=>{G6={name:"StxLink",aliases:["stx-link"],render($,Z,Y){let X=mq($),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="${V1(X.value)}"`);else z.push(`href="${V1(X.value)}"`);if(J)z.push(`class="${V1(J)}"`);if(z.push("data-stx-link"),z.push(`data-stx-active-class="${V1(Q)}"`),z.push(`data-stx-exact-active-class="${V1(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(V1(U))}else z.push(`${V1(U)}="${V1(q)}"`)}return`<a ${z.join(" ")}>${Z}</a>`}}});function _0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function I0($,Z){if($.serverDynamic[Z]!==void 0)return String($.serverDynamic[Z]);let Y=$.static[Z];if(typeof Y==="string")return Y;return}function W6($,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 BY($){if($.includes("(")||$.includes(","))return $;let Z=$.trim().split(/\s+/),Y=[];for(let X of Z)if(X.includes(":")){let[J,Q]=X.split(":"),G=lq[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 U6($,Z,Y,X){return Z.map((J)=>`${o5($,J,void 0,Y,X)} ${J}w`).join(", ")}function cq($,Z,Y,X,J){return Z.map((Q)=>{let G=Y?Y*Q:void 0;return`${o5($,G,void 0,X,J)} ${Q}x`}).join(", ")}function o5($,Z,Y,X,J){if(!X||X==="local"||X==="static")return $;if(X==="cloudinary"){let Q=[];if(Z)Q.push(`w_${Z}`);if(Y)Q.push(`h_${Y}`);if(J)Q.push(`f_${J}`);Q.push("q_auto");let G=Q.join(",");return $.replace("/upload/",`/upload/${G}/`)}if(X==="imgix"){let Q=new URLSearchParams;if(Z)Q.set("w",String(Z));if(Y)Q.set("h",String(Y));if(J)Q.set("fm",J);Q.set("auto","format");let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}if(X==="bunny"){let Q=new URLSearchParams;if(Z)Q.set("width",String(Z));if(Y)Q.set("height",String(Y));if(J)Q.set("format",J);let G=$.includes("?")?"&":"?";return`${$}${G}${Q.toString()}`}return $}function pq($,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 lq,z6,q6;var _6=y(()=>{lq={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},z6=[320,640,768,1024,1280,1536,1920];q6={name:"StxImage",aliases:["stx-image","stx-img"],render($,Z,Y){let X=I0($,"src")||"",J=I0($,"alt")||"",Q=I0($,"width"),G=I0($,"height"),K=I0($,"sizes"),z=I0($,"srcset"),W=I0($,"densities"),U=I0($,"format"),q=I0($,"placeholder"),_=I0($,"placeholderColor")||"#e5e7eb",B=I0($,"provider"),j=I0($,"class")||I0($,"className")||"",H=I0($,"style")||"",L=I0($,"quality"),F=W6($,"lazy",!0),O=W6($,"preload",!1),V=W6($,"picture",!1)||!!U,A=Q?Number.parseInt(Q):void 0,w=G?Number.parseInt(G):void 0,R=z||"",N="";if(!R&&K)R=U6(X,z6,B,U),N=BY(K);else if(!R&&W){let S=W.split(/\s+/).map((b)=>Number.parseFloat(b.replace("x","")));R=cq(X,S,A,B,U)}else if(K)N=BY(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=pq(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(${_0(q)})`),M.push("background-size:cover"),M.push("background-repeat:no-repeat");let T=o5(X,A,w,B,U),D=[];if(D.push(`src="${_0(T)}"`),D.push(`alt="${_0(J)}"`),Q)D.push(`width="${_0(Q)}"`);if(G)D.push(`height="${_0(G)}"`);if(F)D.push('loading="lazy"');if(D.push('decoding="async"'),j)D.push(`class="${_0(j)}"`);if(M.length>0)D.push(`style="${_0(M.join(";"))}"`);if(R)D.push(`srcset="${_0(R)}"`);if(N)D.push(`sizes="${_0(N)}"`);let I=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(I.has(S))continue;if(typeof b==="boolean"){if(b)D.push(_0(S))}else D.push(`${_0(S)}="${_0(b)}"`)}let E=`<img ${D.join(" ")} />`,k="";if(O){let b=U==="webp"?"image/webp":U==="avif"?"image/avif":"";k=`<link rel="preload" as="image" href="${_0(T)}"${b?` type="${b}"`:""}${R?` imagesrcset="${_0(R)}"`:""}${N?` imagesizes="${_0(N)}"`:""} />
|
|
4024
|
+
`}if(V){let S=[];if(U==="avif"||U==="auto"){let b=o5(X,A,w,B,"avif"),P=R?U6(X,z6,B,"avif"):`${b}`;S.push(`<source type="image/avif" srcset="${_0(P)}"${N?` sizes="${_0(N)}"`:""} />`)}if(U==="webp"||U==="auto"){let b=o5(X,A,w,B,"webp"),P=R?U6(X,z6,B,"webp"):`${b}`;S.push(`<source type="image/webp" srcset="${_0(P)}"${N?` sizes="${_0(N)}"`:""} />`)}return`${k}<picture>
|
|
4025
4025
|
${S.join(`
|
|
4026
4026
|
`)}
|
|
4027
4027
|
${E}
|
|
@@ -4169,15 +4169,15 @@ document.addEventListener("focusout",function(e){
|
|
|
4169
4169
|
<style>@keyframes stx-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}</style>
|
|
4170
4170
|
<script>
|
|
4171
4171
|
(function(){var el=document.getElementById('stx-loading-indicator'),p=0,l=!1,i=null;function u(v){p=Math.min(Math.max(v,0),100);if(el){el.style.opacity=p>0?'1':'0';el.style.transform='scaleX('+(p/100)+')'}}window.stxLoading={start:function(){l=!0;p=0;u(10);if(i)clearInterval(i);i=setInterval(function(){if(!l)return;var r=90-p,inc=Math.max(0.5,r*0.1);if(p<90)u(p+inc)},${j.throttle})},finish:function(){l=!1;if(i){clearInterval(i);i=null}u(100);setTimeout(function(){if(el)el.style.opacity='0';setTimeout(function(){p=0;if(el)el.style.transform='scaleX(0)'},300)},200)},set:function(v){u(v)},clear:function(){l=!1;p=0;if(i){clearInterval(i);i=null}if(el){el.style.opacity='0';el.style.transform='scaleX(0)'}}};document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a');if(!a)return;var h=a.getAttribute('href');if(!h||h.startsWith('http')||h.startsWith('#')||h.startsWith('mailto:')||h.startsWith('tel:')||a.target==='_blank')return;window.stxLoading.start()});window.addEventListener('popstate',function(){window.stxLoading.start()});window.addEventListener('load',function(){window.stxLoading.finish()})})();
|
|
4172
|
-
</script>`}),J}async function _N($,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=[B5.resolve(B5.dirname(Y),`${_}.stx`),B5.resolve(B5.dirname(Y),_),B5.resolve(X.componentsDir||"components",`${_}.stx`),B5.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 BN($,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=j0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let D=G.substring(U,N),I=await z1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+I+G.substring(N),z.lastIndex=0}return G}async function jN($,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=T$(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=M$(G,W.scripts),G;async function B(j,H,L,F){let O=j,V=S6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?k6(w.tagName):w.tagName,N=$_(w.attributes),M={};for(let[D,I]of Object.entries(N)){if(D.startsWith("@"))continue;if(D.startsWith("__stx_")){let E=D.slice(6);M[E]=b6(I,J);continue}if(D.startsWith(":")){let E=D.slice(1),k=I==="true"?E:I;try{if(!$0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=I}else{let S=Z0(k,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=I}continue}if(typeof I==="string"&&I.includes("{{")&&I.includes("}}")){let E=I.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let k=E[1];if(!$0(k)){if(J.debug)console.error(`Unsafe expression in ${D}: ${k}`);M[D]=I}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]=I}else{let k=I,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,b;while((b=S.exec(I))!==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]=I}let T=await z1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var TY=y(()=>{V0();H0();D$()});var SY={};l(SY,{processESImports:()=>kY,processComponents:()=>E4});import I4 from"fs";import v0 from"path";function Y_($,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]=b6(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 X_($){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 DY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function J_($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(S0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function Q_($){let Z=IY.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=I4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let W=v0.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 IY.set($,Y),Y}function G_($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(I4.statSync(X).isDirectory())return X}catch{}let J=v0.dirname(Y);if(J===Y)return null;Y=J}}async function kY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=v0.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=v0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(I4.statSync(T).isFile())w=T}catch{try{if(I4.statSync(M).isDirectory())A=M}catch{}}}}else A=G_(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 I=D.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(I)return{source:I[1],local:I[2]};return{source:D,local:D}}),T=A?Q_(A):null;for(let{source:D,local:I}of M){let E=null;if(w)E=w;else if(T)E=T.get(D)??T.get(D.toLowerCase())??T.get(D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(I,E),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 K_($,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=[v0.resolve(v0.dirname(Y),`${_}.stx`),v0.resolve(v0.dirname(Y),_),v0.resolve(X.componentsDir||"components",`${_}.stx`),v0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(W,""),K.lastIndex=0}return Q}async function z_($,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=j0(O,Z)}catch(I){let E=I instanceof Error?I.message:String(I);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let D=await z1(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 W_($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=T$(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,Z_),Q=M$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=S6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?k6(A.tagName):A.tagName,R=X_(A.attributes),N=Y_(R,Z,X),M=S0.getBuiltin(A.tagName),T=M?await bY(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=EY(S,N.clientReactive);if(Object.keys(N.events).length>0){let b=Object.entries(N.events).map(([C,d])=>`${C}="${DY(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 E=await z1(w,D,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=EY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([C,d])=>`${C}="${DY(d)}"`).join(" "),b=k[1].length+k[2].length;E=E.substring(0,b)+" "+S+E.substring(b)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function EY($,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 E4($,Z,Y,X,J){if(!MY)RY(),MY=!0;let Q=await kY($,Z,Y,X,J);Q=await K_(Q,Z,Y,X,J),Q=await z_(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await W_(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=J_(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 MY=!1,Z_,IY;var y6=y(()=>{Q6();NY();TY();H0();V0();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"]);IY=new Map});var k4={};l(k4,{stripTypeScript:()=>xY,hasVariables:()=>uY,extractVariables:()=>p0,extractScriptFromTemplate:()=>dY,convertToCommonJS:()=>P6});import j5 from"path";import r5 from"process";function U_($){let Z=[],Y=0,X=$.split(`
|
|
4172
|
+
</script>`}),J}async function _N($,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=[B5.resolve(B5.dirname(Y),`${_}.stx`),B5.resolve(B5.dirname(Y),_),B5.resolve(X.componentsDir||"components",`${_}.stx`),B5.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 BN($,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=j0(O,Z)}catch(E){let k=E instanceof Error?E.message:String(E);G=G.replace(G.substring(U,H),`[Error parsing component props: ${k}]`);continue}let R="",N=H,T=G.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let D=G.substring(U,N),I=await z1(F,w,R,X,Z,Y,J,K,Q);G=G.substring(0,U)+I+G.substring(N),z.lastIndex=0}return G}async function jN($,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=T$(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=M$(G,W.scripts),G;async function B(j,H,L,F){let O=j,V=S6(O,H,F);for(let A=V.length-1;A>=0;A--){let w=V[A],R=L?k6(w.tagName):w.tagName,N=$_(w.attributes),M={};for(let[D,I]of Object.entries(N)){if(D.startsWith("@"))continue;if(D.startsWith("__stx_")){let E=D.slice(6);M[E]=b6(I,J);continue}if(D.startsWith(":")){let E=D.slice(1),k=I==="true"?E:I;try{if(!$0(k)){if(J.debug)console.error(`Unsafe expression in :${E} binding: ${k}`);M[E]=I}else{let S=Z0(k,Object.keys(Z));M[E]=S(...Object.values(Z))}}catch(S){if(J.debug)console.error(`Error evaluating :${E} binding:`,S);M[E]=I}continue}if(typeof I==="string"&&I.includes("{{")&&I.includes("}}")){let E=I.match(/^\{\{\s*([\s\S]+?)\s*\}\}$/);if(E)try{let k=E[1];if(!$0(k)){if(J.debug)console.error(`Unsafe expression in ${D}: ${k}`);M[D]=I}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]=I}else{let k=I,S=/\{\{\s*([\s\S]+?)\s*\}\}/g,b;while((b=S.exec(I))!==null)try{let P=b[1];if(!$0(P)){if(J.debug)console.error(`Unsafe expression in ${D}: ${P}`);continue}let f=Z0(P,Object.keys(Z))(...Object.values(Z));k=k.replace(b[0],String(f??""))}catch(P){if(J.debug)console.error(`Error evaluating expression in ${D}:`,P)}M[D]=k}}else M[D]=I}let T=await z1(R,M,w.content,X,Z,Y,J,K,Q);O=O.substring(0,w.startIndex)+T+O.substring(w.endIndex)}return O}}var TY=y(()=>{V0();H0();D$()});var SY={};l(SY,{processESImports:()=>kY,processComponents:()=>E4});import I4 from"fs";import v0 from"path";function Y_($,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]=b6(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 X_($){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 DY($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function J_($){let Z=new Set,Y=/<([A-Z][A-Za-z0-9]*|stx-[a-z0-9-]+)\b[^>]*>/g,X;while((X=Y.exec($))!==null){let J=X[1];if(S0.isBuiltin(J))Z.add(J)}return[...Z].sort()}function Q_($){let Z=IY.get($);if(Z)return Z;let Y=new Map,X=[v0.join($,"src"),v0.join($,"dist"),$];function J(Q,G){if(G>6)return;let K;try{K=I4.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let z of K){let W=v0.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 IY.set($,Y),Y}function G_($,Z){if($.startsWith(".")||$.startsWith("/"))return null;let Y=Z;while(!0){let X=v0.join(Y,"node_modules",$);try{if(I4.statSync(X).isDirectory())return X}catch{}let J=v0.dirname(Y);if(J===Y)return null;Y=J}}async function kY($,Z,Y,X,J){if(!$.includes("import"))return $;if(!Z.__importedComponents)Z.__importedComponents=new Map;let Q=Z.__importedComponents,G=v0.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=v0.resolve(G,V);if(M.endsWith(".stx"))w=M;else{let T=`${M}.stx`;try{if(I4.statSync(T).isFile())w=T}catch{try{if(I4.statSync(M).isDirectory())A=M}catch{}}}}else A=G_(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 I=D.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);if(I)return{source:I[1],local:I[2]};return{source:D,local:D}}),T=A?Q_(A):null;for(let{source:D,local:I}of M){let E=null;if(w)E=w;else if(T)E=T.get(D)??T.get(D.toLowerCase())??T.get(D.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())??null;if(E)N(I,E),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 K_($,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=[v0.resolve(v0.dirname(Y),`${_}.stx`),v0.resolve(v0.dirname(Y),_),v0.resolve(X.componentsDir||"components",`${_}.stx`),v0.resolve(X.componentsDir||"components",_),_.endsWith(".stx")?_:`${_}.stx`];for(let V of O)try{if(await Bun.file(V).exists()){F=V;break}}catch{}if(F){G.set(L,F),G.set(H,F),G.set(H.toLowerCase(),F);let V=L.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();if(G.set(V,F),J.add(F),X.debug)console.log(`Imported component: ${L} -> ${F}`)}else if(X.debug)console.warn(`Could not resolve imported component: ${_}`)}Q=Q.replace(W,""),K.lastIndex=0}return Q}async function z_($,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=j0(O,Z)}catch(I){let E=I instanceof Error?I.message:String(I);Q=Q.replace(Q.substring(U,H),`[Error parsing component props: ${E}]`);continue}let R="",N=H,T=Q.substring(H).match(/^([\s\S]*?)@endcomponent/);if(T)R=T[1].trim(),N=H+T[0].length;let D=await z1(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 W_($,Z,Y,X,J){if(!$)return $;let Q=$,G=X.componentsDir||"components";if(!Z.__processedComponents)Z.__processedComponents=new Set;let K=Z.__processedComponents,z=T$(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,Z_),Q=M$(Q,z.scripts),Q;async function _(B,j,H,L){if(!B)return B;let F=B,O=S6(F,j,L);for(let V=O.length-1;V>=0;V--){let A=O[V],w=H?k6(A.tagName):A.tagName,R=X_(A.attributes),N=Y_(R,Z,X),M=S0.getBuiltin(A.tagName),T=M?await bY(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=EY(S,N.clientReactive);if(Object.keys(N.events).length>0){let b=Object.entries(N.events).map(([P,d])=>`${P}="${DY(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 E=await z1(w,D,A.content,G,Z,Y,X,K,J);if(Object.keys(N.clientReactive).length>0)E=EY(E,N.clientReactive);if(Object.keys(N.events).length>0){let k=E.match(/^(\s*<)([a-zA-Z][a-zA-Z0-9-]*)(\s|>|\/)/s);if(k){let S=Object.entries(N.events).map(([P,d])=>`${P}="${DY(d)}"`).join(" "),b=k[1].length+k[2].length;E=E.substring(0,b)+" "+S+E.substring(b)}}F=F.substring(0,A.startIndex)+E+F.substring(A.endIndex)}return F}}function EY($,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 E4($,Z,Y,X,J){if(!MY)RY(),MY=!0;let Q=await kY($,Z,Y,X,J);Q=await K_(Q,Z,Y,X,J),Q=await z_(Q,Z,Y,X,J);for(let G=0;G<3;G++){let K=Q;if(Q=await W_(Q,Z,Y,X,J),Q===K)break}if(X.debug){let G=J_(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 MY=!1,Z_,IY;var y6=y(()=>{Q6();NY();TY();H0();V0();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"]);IY=new Map});var k4={};l(k4,{stripTypeScript:()=>xY,hasVariables:()=>uY,extractVariables:()=>p0,extractScriptFromTemplate:()=>dY,convertToCommonJS:()=>P6});import j5 from"path";import r5 from"process";function U_($){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 xY($){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 p0($,Z,Y,X={}){if(!$.trim())return;let J;try{let
|
|
4175
|
+
`),Z}async function p0($,Z,Y,X={}){if(!$.trim())return;let J;try{let C=new Bun.Transpiler({loader:"ts",target:"browser",define:s0()}),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=xY($)}let Q={exports:{}},G=Q.exports,K=r5.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=j5.resolve(K,"node_modules",C),x=j5.join(v,"package.json"),g=JSON.parse(Q0("fs").readFileSync(x,"utf8")),m=g.main||"index.js";if(g.exports){let s=typeof g.exports==="string"?g.exports:g.exports["."];if(typeof s==="string")m=s;else if(s?.bun)m=s.bun;else if(s?.import)m=s.import;else if(s?.default)m=s.default}z[C]=await import(j5.resolve(v,m))}catch{}let U=(C)=>{if(z[C])return z[C];return Q0(C)},q=Z.props||{},_=Object.assign((C)=>{if(!C)return q;let v={};for(let[x,g]of Object.entries(C)){let m=q[x];if(m!==void 0)v[x]=m;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 m=g&&typeof g==="object"&&!Array.isArray(g)?g:{type:g};if(v[x]===void 0&&m.default!==void 0)v[x]=typeof m.default==="function"?m.default():m.default}return v},j=()=>Z.slots||{},H=(C,v)=>{let x={...C};for(let[g,m]of Object.entries(v))if(x[g]===void 0)if(typeof m==="function")x[g]=m();else x[g]=m;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)=>{h1(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)=>{F4(C);let v=d5();Z.__stx_runtime_head={...Z.__stx_runtime_head||{},...v.title&&{title:v.title},meta:v.meta?[...v.meta]:[]}},I=(C)=>({value:C}),E=(C)=>C,k=(C)=>({value:typeof C==="function"?C():C}),S=(C,v)=>{},b=(C)=>{},P=(C)=>{},d=(C)=>C?C():Promise.resolve(),f=(C)=>(v,...x)=>{},u=(C)=>{},o=(C,v)=>{},N0=(C,v)=>v,Z1=()=>({value:"light"}),y0=()=>({value:!1}),E0={siteId:void 0,API_ENDPOINT:"",ANALYTICS_SITE_ID:void 0,location:{href:"",pathname:"",search:"",hash:"",origin:"",host:"",hostname:"",protocol:"https:",assign:()=>{},replace:()=>{},reload:()=>{}},localStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},sessionStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{},clear:()=>{}},fetch:globalThis.fetch,addEventListener:()=>{},removeEventListener:()=>{},setTimeout:()=>0,clearTimeout:()=>{},setInterval:()=>0,clearInterval:()=>{},requestAnimationFrame:()=>0,cancelAnimationFrame:()=>{},alert:()=>{},confirm:()=>!1,prompt:()=>null,getComputedStyle:()=>({}),matchMedia:()=>({matches:!1,addListener:()=>{},removeListener:()=>{}}),getDateRangeParams:()=>"",stx:{}},X0=new Proxy(E0,{get(C,v){if(v in C)return C[v];return},set(C,v,x){return C[v]=x,!0}}),F0={getElementById:()=>null,querySelector:()=>null,querySelectorAll:()=>[],createElement:()=>({}),createTextNode:()=>({}),body:{},head:{},documentElement:{},addEventListener:()=>{},removeEventListener:()=>{}},U0=console;try{let C=P6(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]),m=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,o0]of Object.entries(q)){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(t))continue;if(m.has(t))continue;if(new RegExp(`(?:^|[\\s;{])(?:const|let|var|function)\\s+${t}\\b`).test(C))continue;s.push(t),G0.push(o0)}let C0=U_(C).map((t)=>`module.exports.${t} = typeof ${t} !== 'undefined' ? ${t} : module.exports.${t};`).join(`
|
|
4176
4176
|
`),M1=Z.params??{},W0=[],D1=[];for(let t=0;t<x.length;t++){if(x[t]==="params")continue;W0.push(x[t]),D1.push(g[t])}let B$=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
|
${C0}
|
|
4179
4179
|
return module.exports
|
|
4180
|
-
})()`)(Q,G,U,q,_,B,H,L,F,O,V,A,w,R,N,M,T,D,I,E,k,S,b,
|
|
4180
|
+
})()`)(Q,G,U,q,_,B,H,L,F,O,V,A,w,R,N,M,T,D,I,E,k,S,b,P,d,f,u,j,o,N0,Z1,y0,X0,F0,U0,E0.confirm,E0.alert,E0.fetch,M1,...G0,...D1);if(X.preserveExisting){for(let[t,o0]of Object.entries(B$))if(!(t in Z)||Z[t]===void 0)Z[t]=o0}else Object.assign(Z,B$);for(let[t,o0]of Object.entries(q))if(!(t in Z))Z[t]=o0}catch(C){if(r5.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 H_(J,Z,Y)}catch(v){if(r5.env.STX_DEBUG){let x=v instanceof Error?v.message:String(v);console.warn(`[stx] fallback extraction also failed in ${Y??"<unknown>"}: ${x}`)}}}}function P6($,Z){let Y=Z?j5.dirname(Z):r5.cwd(),X=$.split(`
|
|
4181
4181
|
`),J=[],Q=0;while(Q<X.length){let G=X[Q].trim();if(G.startsWith("interface ")||G.startsWith("export interface ")||G.startsWith("type ")||G.startsWith("export type ")){if(G.includes("{")&&!G.includes("}")){let K=0;for(;Q<X.length;Q++){for(let 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 j5.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=yY(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=C6(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=yY(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=C6(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=C6(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 q_(J.join(`
|
|
4183
4183
|
`),Y)}function q_($,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 C6($,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(B_(Y)){let K=j_($,Z,Q);Q=K.functionCode,G=K.nextIndex}else G=Z+1;return{name:J,functionCode:Q,nextIndex:G}}function CY($){let Z=$.trim();if(Z.startsWith("{"))return L0(Z,"{","}",0)===-1;if(Z.startsWith("["))return L0(Z,"[","]",0)===-1;return!hY(Z)}function hY($){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 B_($){let Z=$.indexOf("{");if(Z===-1)return!0;return L0($,"{","}",Z)===-1}function PY($,Z,Y){let X=Y,J=Z+1;while(J<$.length&&!hY(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 j_($,Z,Y){let X=Y,J=Z+1;while(J<$.length){let Q=X.indexOf("{");if(Q!==-1){if(L0(X,"{","}",Q)!==-1)break}let G=$[J];X+=`
|
|
4190
|
-
${G}`,J++}return{functionCode:X,nextIndex:J}}function vY($,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:{...r5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function H_($,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=vY(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=vY(z,Z);if(W!==void 0)Z[G]=W}catch{}}}function dY($){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 uY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=y(()=>{u5();s1();V0()});var oY={};l(oY,{processLoops:()=>v6});function F_($,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=j0(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 S4($,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 V_($,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);M5(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 w_($,Z){let Y=$;return Y=S4(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?b4:""}catch{return""}}),Y=S4(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?y4:""}catch{return""}}),Y}function A_($){let Z=$;return Z=Z.replace(/@break(?!\()/g,b4),Z=Z.replace(/@continue(?!\()/g,y4),Z}function mY($){let Z=$.includes(b4),Y=Z?$.substring(0,$.indexOf(b4)):$;return{hasBreak:Z,content:Y}}function lY($){let Z=$.includes(y4),Y=Z?$.substring(0,$.indexOf(y4)):$;return{hasContinue:Z,content:Y}}function pY($){let Z=$;return Z=S4(Z,"@break",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=S4(Z,"@continue",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function R_($){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,I=-1,E=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))E++,k=S+1;else if(b.startsWith("@endforelse"))E--,k=S+11;else if(E===0&&b.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){I=S;break}k=S+1}else k=S+1}if(I===-1)continue;return{start:U,end:D,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,I),emptyContent:T.substring(I+6)}}return null}function cY($,Z){let Y=$;while(!0){let X=R_(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}`,c.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function v6($,Z,Y,X){let J=$;J=cY(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),I=T.exec(z);if(!I)break;if(D&&D.index<I.index)R++,N=D.index+D[0].length;else{if(R--,R===0){let E=z.substring(w,I.index),k=I.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:E}}N=I.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 I=r("Foreach",`Error in @foreach: ${F} is not iterable`,c.TYPE_ERROR);U=U.substring(0,_)+I+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??L_,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let I=w.split("=>").map((E)=>E.trim());if(I.length===2&&I[0]&&I[1])R=I[0],N=I[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let I=w.split(",").map((E)=>E.trim());if(I.length===2&&I[0]&&I[1])N=I[0],R=I[1],M=!0;else N=w}else N=w;let T="",D=O;for(let I=0;I<D.length;I++){let E=D[I],k={index:I,iteration:I+1,first:I===0,last:I===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((u)=>u.trim());if(Array.isArray(E))f.forEach((u,o)=>{if(u)S[u]=E[o]});else S[N]=E}else S[N]=E;if(R)if(!M&&V&&Array.isArray(E)&&E.length===2)S[R]=E[0],S[N]=E[1];else S[R]=I;let b=w_(L,S),
|
|
4190
|
+
${G}`,J++}return{functionCode:X,nextIndex:J}}function vY($,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:{...r5.env}})};try{return Function(...Object.keys(X),`'use strict'; return (${$});`)(...Object.values(X))}catch{try{return Function(...Object.keys(X),`'use strict'; return ${$};`)(...Object.values(X))}catch{return}}}async function H_($,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=vY(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=vY(z,Z);if(W!==void 0)Z[G]=W}catch{}}}function dY($){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 uY($){let Z=$.trim();if(!Z)return!1;return/(?:const|let|var|function)\s+\w+/.test(Z)}var a5=y(()=>{u5();s1();V0()});var oY={};l(oY,{processLoops:()=>v6});function F_($,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=j0(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 S4($,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 V_($,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);M5(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 w_($,Z){let Y=$;return Y=S4(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?b4:""}catch{return""}}),Y=S4(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?y4:""}catch{return""}}),Y}function A_($){let Z=$;return Z=Z.replace(/@break(?!\()/g,b4),Z=Z.replace(/@continue(?!\()/g,y4),Z}function mY($){let Z=$.includes(b4),Y=Z?$.substring(0,$.indexOf(b4)):$;return{hasBreak:Z,content:Y}}function lY($){let Z=$.includes(y4),Y=Z?$.substring(0,$.indexOf(y4)):$;return{hasContinue:Z,content:Y}}function pY($){let Z=$;return Z=S4(Z,"@break",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { break; } result += \``}),Z=S4(Z,"@continue",(Y)=>{let X=Y.trim();if(!D5(X))return"";return`\`; if (${X}) { continue; } result += \``}),Z=Z.replace(/@break(?!\()/g,"`; break; result += `"),Z=Z.replace(/@continue(?!\()/g,"`; continue; result += `"),Z}function R_($){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,I=-1,E=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))E++,k=S+1;else if(b.startsWith("@endforelse"))E--,k=S+11;else if(E===0&&b.startsWith("@empty")){if(T.length<=S+6||!/[a-z]/i.test(T[S+6])){I=S;break}k=S+1}else k=S+1}if(I===-1)continue;return{start:U,end:D,arrayExpr:F,itemVar:O,foreachContent:T.substring(0,I),emptyContent:T.substring(I+6)}}return null}function cY($,Z){let Y=$;while(!0){let X=R_(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}`,c.EVALUATION_ERROR);Y=Y.substring(0,J)+_+Y.substring(Q)}}return Y}function v6($,Z,Y,X){let J=$;J=cY(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),I=T.exec(z);if(!I)break;if(D&&D.index<I.index)R++,N=D.index+D[0].length;else{if(R--,R===0){let E=z.substring(w,I.index),k=I.index+11;return{start:O,end:k,arrayExpr:V,itemVar:A,content:E}}N=I.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 I=r("Foreach",`Error in @foreach: ${F} is not iterable`,c.TYPE_ERROR);U=U.substring(0,_)+I+U.substring(B);continue}let A=X?.loops?.useAltLoopVariable??L_,w=H.trim(),R=null,N,M=!1;if(w.includes("=>")){let I=w.split("=>").map((E)=>E.trim());if(I.length===2&&I[0]&&I[1])R=I[0],N=I[1];else N=w}else if(!w.startsWith("[")&&!w.startsWith("{")&&w.includes(",")){let I=w.split(",").map((E)=>E.trim());if(I.length===2&&I[0]&&I[1])N=I[0],R=I[1],M=!0;else N=w}else N=w;let T="",D=O;for(let I=0;I<D.length;I++){let E=D[I],k={index:I,iteration:I+1,first:I===0,last:I===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((u)=>u.trim());if(Array.isArray(E))f.forEach((u,o)=>{if(u)S[u]=E[o]});else S[N]=E}else S[N]=E;if(R)if(!M&&V&&Array.isArray(E)&&E.length===2)S[R]=E[0],S[N]=E[1];else S[R]=I;let b=w_(L,S),P=lY(b);if(P.hasContinue){T+=P.content;continue}let d=mY(b);if(d.hasBreak){T+=d.content;break}if(b=cY(b,S),b=G(b,S),b=x1(b,S,Y),b=A_(b),d=mY(b),d.hasBreak){T+=d.content;break}if(P=lY(b),P.hasContinue){T+=P.content;continue}b=r0(b,S,Y),b=V_(b,S),b=F_(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)}`,c.EVALUATION_ERROR);U=U.substring(0,_)+O+U.substring(B)}}return U}J=G(J,Z),J=nY(J,Z,Y,X);let K=X?.loops?.maxWhileIterations??O_;return J=M_(J,Z,K),J}function iY($){return D5($)}function nY($,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=L0(J,"(",")",z);if(W===-1)break;let U=J.slice(z+1,W),q=W+1,_=j4(J.slice(K),"for","endfor");if(_.length===0)break;let B=_[0].content,j=K+_[0].end;if(!iY(U)){let H=r("For",`Unsafe expression in @for: ${U}`,c.UNSAFE_EXPRESSION);J=J.substring(0,K)+H+J.substring(j),Q=!0;continue}try{let H=N_(U),L=/@(?:for|foreach|if|unless)\s*\(/.test(B);if(H.length>0&&L){let R=T_({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=pY(V);let w=Function(...F,`
|
|
4191
4191
|
let result = '';
|
|
4192
4192
|
for (${U}) {
|
|
4193
4193
|
result += \`${V}\`;
|
|
@@ -4244,14 +4244,14 @@ ${E_($).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 S_($,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 pN(){tY.clear()}function b_($){if($.__onceStore instanceof Set)return $.__onceStore;return tY}async function g6($,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=D_($,"@partial","@include"),z=b_(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=f6(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 I=D[1],E=T.substring(D[0].length),k,S=f6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let b=`Boolean(${M})`,
|
|
4248
|
-
`;continue}if(N0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (a5(),k4));await X0(o,D,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!N0&&!
|
|
4247
|
+
})();`}function S_($,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 pN(){tY.clear()}function b_($){if($.__onceStore instanceof Set)return $.__onceStore;return tY}async function g6($,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=D_($,"@partial","@include"),z=b_(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=f6(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 I=D[1],E=T.substring(D[0].length),k,S=f6(E,0);if(S!==-1)k=E.substring(S+1).trim();try{let b=`Boolean(${M})`,P;if($0(b)){let u=Z0(b,Object.keys(Z));P=Boolean(u(...Object.values(Z)))}else P=Boolean(e(b,Z));let d=H?!P:P,f="";if(d){let u=W(I,G,Y);if(u&&await Bun.file(u).exists())J.add(u);f=`@include('${I}'${k?`, ${k}`:""})`}K=K.substring(0,O)+f+K.substring(w),L.lastIndex=0}catch(b){let P=b instanceof Error?b.message:String(b),d=J0("Include",`Error evaluating ${j} condition: ${P}`,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 I,E=M.trim();if($0(E))I=Z0(E,Object.keys(Z))(...Object.values(Z));else I=e(E,Z);let k="";if(Array.isArray(I)&&I.length>0)for(let S of I){let b={...Z,[T]:S},P=await q(N,b,$,L);k+=P}else if(D)k=await q(D,{},$,L);K=K.substring(0,L)+k+K.substring(V+1),j.lastIndex=0}catch(I){let E=I instanceof Error?I.message:String(I);K=K.substring(0,L)+J0("Each",`Error in @each: ${E}`,Y,$,L)+K.substring(V+1),j.lastIndex=0}}}{let j=/@includeFirst\s*\(/g,H;while((H=j.exec(K))!==null){let L=H.index,F=L+H[0].length-1,O=1,V=F+1;while(V<K.length&&O>0){if(K[V]==="(")O++;else if(K[V]===")"){if(O--,O===0)break}V++}if(O!==0)break;let A=K.substring(F+1,V),w=K.substring(L,V+1),R=A.match(/^\s*(\[[^\]]+\])/);if(!R){j.lastIndex=0,K=K.replace(w,"");continue}let N=R[1],M=A.slice(R[0].length),T,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 I,E=M.match(/^\s*,\s*['"]([^'"]*)['"]\s*$/);if(E)I=E[1];try{let k=JSON.parse(N.replace(/'/g,'"')),S={};if(T)try{S=j0(T,Z)}catch(P){let d=P instanceof Error?P.message:String(P);if(X.debug){let f=J0("Include",`Error parsing includeFirst variables: ${d}`,Y,$,L,w);K=K.replace(w,()=>f)}else K=K.replace(w,()=>I||"");continue}let b=!1;for(let P of k){let d=W(P,G,Y);if(!d)continue;if(await i(d)){let f=await q(P,S,$,L);K=K.replace(w,()=>f),b=!0;break}}if(!b)if(I!==void 0)K=K.replace(w,()=>I);else if(X.debug){let P=J0("Include",`None of the includeFirst paths exist: ${N}`,Y,$,L,w);K=K.replace(w,()=>P)}else K=K.replace(w,"")}catch(k){let S=k instanceof Error?k.message:String(k),b=J0("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 J0("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 J0("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 u=f instanceof Error?f.message:String(f);return J0("Include",`Error loading include file ${j}: ${u}`,Y,L,F)}if(A&&A.includes("@stream")){let{processStreamDirectives:f}=await Promise.resolve().then(() => (Z6(),$6));A=f(A,Z)}if(A&&(X.debug||!v5()&&!a$()))try{let{warnUnbalancedTags:f}=await Promise.resolve().then(() => (X6(),WY));f(A,O)}catch{}let w=A;try{let{processESImports:f}=await Promise.resolve().then(() => (y6(),SY));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,u]of Object.entries(H))D[f]=u;let I=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,E=[...A.matchAll(I)],k="",S=null;for(let f of E){let u=f[1]||"",o=f[2]||"",N0=u.includes("server"),Z1=m1(u),y0="";try{let{extractAndStripCssImports:X0,renderVendorStyleTags:F0}=await Promise.resolve().then(() => (t5(),rY)),U0=X0(o,{filePath:O,projectRoot:process.cwd()});o=U0.code,y0=F0(U0.styles)}catch(X0){if(X.debug)console.warn(`[stx] vendor-css extractor skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}if(Z1&&o.trim())o=l1(o);if(!N0)try{let{hasUserImports:X0,bundleClientScript:F0}=await Promise.resolve().then(() => (w$(),V$));if(X0(o))o=await F0(o,O,{projectRoot:process.cwd()})}catch(X0){if(X.debug)console.warn(`[stx] bundler skipped for ${O}:`,X0 instanceof Error?X0.message:X0)}let E0=I_(o);if(E0&&!N0){S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++sY}`;let X0=J1(o),F0=k_(X0,S);k+=`${y0}<script data-stx-scoped>${F0}</script>
|
|
4248
|
+
`;continue}if(N0)try{let{extractVariables:X0}=await Promise.resolve().then(() => (a5(),k4));await X0(o,D,O)}catch(X0){if(X.debug)console.warn(`Warning: Could not extract variables from server script in ${O}:`,X0)}if(!N0&&!E0){let X0=u.replace(/\bclient\b/i,"").trim();S=`stx_scope_${z0.basename(O,".stx").replace(/[^a-zA-Z0-9]/g,"_")}_${++sY}`;let F0=J1(o),U0=`
|
|
4249
4249
|
if (!window.stx._scopes) window.stx._scopes = {};
|
|
4250
4250
|
window.stx._scopes['${S}'] = { __destroyCallbacks: __destroyHooks };
|
|
4251
|
-
`,
|
|
4252
|
-
`}}if(S){let f=S_(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 g6(w,D,O,X,J,Q);let{processLoops:b}=await Promise.resolve().then(() => (x6(),oY)),
|
|
4253
|
-
`+T;if(k)
|
|
4254
|
-
`+k;return
|
|
4251
|
+
`,C=aY(F0,U0);k+=`${y0}<script data-stx-scoped${X0?` ${X0}`:""}>${C}</script>
|
|
4252
|
+
`}}if(S){let f=S_(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 g6(w,D,O,X,J,Q);let{processLoops:b}=await Promise.resolve().then(() => (x6(),oY)),P=b(w,D,O);P=x1(P,D,O);let d=a1(A);if(P=r0(P,D,O,{forceSignals:d}),T)P+=`
|
|
4253
|
+
`+T;if(k)P+=`
|
|
4254
|
+
`+k;return P}catch(A){let w=A instanceof Error?A.message:String(A);return J0("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=f6(N,0);if(M!==-1)R=N.substring(M+1).trim();let T={};if(R)try{T=j0(R,Z)}catch(I){let E=I instanceof Error?I.message:String(I);K=K.replace(O,J0("Include",`Error parsing include variables for ${w}: ${E}`,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 h6($,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 d6($,Z){return $.replace(/@stack\(['"]([^'"]+)['"]\)/g,(Y,X)=>{if(!Z[X]||Z[X].length===0)return"";return Z[X].join(`
|
|
4255
4255
|
`)})}var sY=0,cN,tY;var eY=y(()=>{O4();a0();t1();V0();H0();cN=new S5(500),tY=new Set});import*as u6 from"path";async function $X($,Z,Y=""){if(u6.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 YX($,Z,Y,"@js","@endjs")}async function ZX($,Z,Y=""){if(u6.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 YX($,Z,Y,"@ts","@endts")}async function YX($,Z,Y,X,J){let Q=$,G=E1(`${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(b0.isAbsolute(H))O=H,J.add(H);else O=a
|
|
|
13416
13416
|
${z}`,q(z)}catch(O){return m0.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 VQ(z,Z,Y,G,J))}function HH($,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 OH($,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 LH($,Z){await J5(()=>qX($,Z),void 0,(Y)=>{m0.log(Y,{filePath:$,phase:"view-composer"},"warning"),console.warn(`[stx] view composer failed for ${$}: ${Y.message}`)})}async function FH($,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(() => (a5(),k4));await z(G,Z,Y,{preserveExisting:!0})}catch(z){let W=z instanceof Error?z:Error(String(z));m0.log(W,{filePath:Y,phase:"server-script-extraction"},"warning"),console.warn(`[stx] server <script> extraction failed in ${Y}: ${W.message}`)}}}async function VH($,Z,Y){try{let{interpolateScriptsInTemplate:X}=await Promise.resolve().then(() => (a0(),W8));return X($,Z,{skipServer:!0})}catch(X){let J=X instanceof Error?X:Error(String(X));return m0.log(J,{filePath:Y,phase:"script-expression-interpolation"},"warning"),console.warn(`[stx] script expression interpolation failed in ${Y}: ${J.message}`),$}}async function VQ($,Z,Y,X,J){let Q=$,G=X;if(await FH(Q,Z,Y),Q=await VH(Q,Z,Y),Q=await $X(Q,Z,Y),Q=await ZX(Q,Z,Y),Q=await u2(Q,Z,Y,G),a1(Q))Q=e6(Q,Z),Q=Z9(Q,Z);Q=$9(Q);let{processStreamDirectives:K}=await Promise.resolve().then(() => (Z6(),$6));Q=K(Q,Z),Q=v6(Q,Z,Y,G),Q=await E4(Q,Z,Y,G,J),Q=await VX(Q,Z,Y,G,J),Q=u9(Q,Z,Y,G);let{processDeferDirectives:z}=await Promise.resolve().then(() => ZJ);Q=z(Q,Z,Y);let{processTeleportDirectives:W}=await Promise.resolve().then(() => XJ);Q=W(Q,Z,Y);let{processTransitionDirectives:U,processTransitionAttributes:q}=await Promise.resolve().then(() => KJ);Q=U(Q,Z,Y),Q=q(Q);let{processErrorBoundaryDirectives:_}=await Promise.resolve().then(() => WJ);Q=_(Q,Z,Y);let{processSuspenseDirectives:B}=await Promise.resolve().then(() => UJ);Q=B(Q,Z,Y);let{processAsyncDirectives:j}=await Promise.resolve().then(() => jJ);Q=j(Q,Z,Y);let{processKeepAliveDirectives:H}=await Promise.resolve().then(() => OJ);Q=H(Q,Z,Y);let{processVirtualListDirectives:L,processVirtualGridDirectives:F,processInfiniteListDirectives:O}=await Promise.resolve().then(() => (RJ(),AJ));Q=L(Q,Z,Y),Q=F(Q,Z,Y),Q=O(Q,Z,Y);let{processPartialHydrationDirectives:V,processStaticDirectives:A}=await Promise.resolve().then(() => (fJ(),xJ));Q=V(Q,Z,Y),Q=A(Q);let{processComputedDirectives:w,processWatchDirectives:R}=await Promise.resolve().then(() => (sJ(),oJ));Q=w(Q,Z,Y),Q=R(Q,Z,Y);let{processFormValidationDirectives:N}=await Promise.resolve().then(() => ($Q(),eJ));Q=N(Q,Z,Y);let{processHeadDirective:M,processTitleDirective:T,processMetaDirective:D,resetHead:I}=await Promise.resolve().then(() => (u5(),m3));if(!Z.__stx_head_preset&&!Z.__stx_runtime_head)I();let E=M(Q);if(Q=E.content,E.headContent)Z.__stx_head_raw=`${Z.__stx_head_raw||""}${E.headContent}
|
|
13417
13417
|
`;if(Q=T(Q,Z),Q=D(Q,Z),Q=WX(Q),Q=x3(Q,Z),Q=h2(Q),Q=JX(Q),Q=await g6(Q,Z,Y,G,J),Q=await E4(Q,Z,Y,G,J),Q=Q.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g,""),Q=J9(Q),Q=x1(Q,Z,Y),Q=f3(Q,Z),Q=g3(Q,Z),Q=c5(Q,Z),Q=c3(Q,Z),Q=p3(Q,Z),Q=await w2(Q,Z,Y,G),Q=await D7(Q,Z,Y),Q=await a3(Q,Z,Y,G),Q=_7(Q,Z,Y,G),Q=gZ(Q,Z,Y,G),Q=hZ(Q,Z,Y),Q=dZ(Q,Z,Y,G),Q=P2(Q,Z,Y,G),Q=r4(Q,Z),Q=a4(Q),Q=sX(Q),!G.skipEventDirectives)Q=B2(Q,Z,Y);if(Q=F2(Q,Z,Y),G.debug){let x=/\bx-data\s*=/.test(Q),g=s4($);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=jX(Q,Z),Q=await r0(Q,Z,Y),Q=rX(Q),Q=aX(Q),Q=G2(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => XQ);Q=k(Q);let S=Z.__originalFilePath||Y,b=J$(Z);if(Q=await Y9(Q,G,S,b),Q=await KX(Q,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (l9(),m9));Q=await g(Q,{publicDir:x})}if(G.seo?.enabled)Q=uZ(Q,Z,G);let
|
|
13419
|
+
Prefer signals (state/derived/effect) for new components.`)}Q=jX(Q,Z),Q=await r0(Q,Z,Y),Q=rX(Q),Q=aX(Q),Q=G2(Q);let{processXElementDirectives:k}=await Promise.resolve().then(() => XQ);Q=k(Q);let S=Z.__originalFilePath||Y,b=J$(Z);if(Q=await Y9(Q,G,S,b),Q=await KX(Q,Z,Y,G),G.media?.image?.autoSiblings){let x=G.publicDir||"public",{rewriteImagesWithSiblings:g}=await Promise.resolve().then(() => (l9(),m9));Q=await g(Q,{publicDir:x})}if(G.seo?.enabled)Q=uZ(Q,Z,G);let P=(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(() => (u5(),m3)),u=Z.__stx_runtime_head,o=u&&(u.title||u.meta?.length||u.link?.length)?u: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(() => (u5(),m3)),u=Z.__stx_runtime_head,o=u&&(u.title||u.meta?.length||u.link?.length)?u:f();if(o.title||o.meta?.length||o.link?.length){let x=d(o);if(x)Q=P(Q,x)}if(E.headContent)Q=P(Q,E.headContent);if(G.csp?.enabled&&G.csp.addMetaTag)Q=C2(Q,G.csp,Z);if(G.analytics?.enabled)Q=g9(Q,G);if(G.heatmap?.enabled)Q=V8(Q,G);if(G.pwa?.enabled&&G.pwa.autoInject!==!1){let{injectPwaTags:x}=await Promise.resolve().then(() => (LQ(),OQ));Q=x(Q,G)}let N0=/<script\b(?![^>]*\bserver\b)[^>]*>[\s\S]*?<\/script>/i.test(Q),Z1=/\bSTX\.\w+/.test(Q),y0=/window\.STX\s*=/.test(Q);if(N0&&Z1&&!y0){let g=`<script data-stx-scoped>
|
|
13425
13425
|
${Y2()}
|
|
13426
|
-
</script>`;if(Q.includes("</head>")){let m=Q.indexOf("</head>"),G0=Q.slice(0,m).indexOf("<script");if(G0!==-1){let
|
|
13426
|
+
</script>`;if(Q.includes("</head>")){let m=Q.indexOf("</head>"),G0=Q.slice(0,m).indexOf("<script");if(G0!==-1){let T0=Q.slice(0,G0),C0=Q.slice(G0);Q=T0+g+`
|
|
13427
13427
|
`+C0}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,m=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,G0=BH(Q,s);if(G0===-1)continue;let
|
|
13430
|
+
`+Q}{let x=/<script\s+server\b[^>]*>/gi,g,m=[];while((g=x.exec(Q))!==null){let s=g.index+g[0].length,G0=BH(Q,s);if(G0===-1)continue;let T0=G0+9;while(T0<Q.length&&/\s/.test(Q[T0]))T0++;m.push({start:g.index,end:T0}),x.lastIndex=T0}for(let s=m.length-1;s>=0;s--){let{start:G0,end:T0}=m[s];Q=Q.substring(0,G0)+Q.substring(T0)}}let E0=P4(Q,Y);if(E0.hasScoped)Q=E0.html;let X0=Z.__stx_event_bindings||[],F0=!1,U0=[],C=/\s:[a-z][\w.-]*\s*=/.test(Q),{scanScriptTags:v}=await Promise.resolve().then(() => (X9(),cX));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)["'])[^"']*["']/}))U0.push({match:x.fullMatch,attrs:x.attrs,content:x.body});for(let{match:x,attrs:g,content:m}of U0){F0=!0;let s=m;t4(m,Y,X.strict);let G0=await Q$(m,{eventBindings:X0,attrs:g,hasColonDirectives:C,templateContent:$,filePath:Y,projectRoot:process.cwd(),production:X.buildMode==="compile",serverData:b});Q=Q.replace(x,()=>G0)}if(F0)Z.__stx_event_bindings=[];return Q}var n1="<!--PARENT_CONTENT_PLACEHOLDER-->";var n5=y(()=>{eZ();D$();B7();X2();K2();h9();M7();F7();j2();t5();V2();A2();O4();v2();d2();l2();Q1();u5();a0();n2();YY();eY();XX();x6();E7();zX();t1();UX();L3();H0();_X();HX();FX();wX();l6();X9();y6();oX();Q9();G9();V0();X6();Q9();G9()});function NH($){let Z=[],Y=[];return TH($,Z),MH($,Z,Y),DH($,Y),IH($,Z),{valid:Z.length===0,errors:Z,warnings:Y}}function TH($,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 MH($,Z,Y){for(let X of wH){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 DH($,Z){for(let Y of AH)if(Y.pattern.test($))Z.push({type:"syntax",message:Y.message,suggestion:Y.suggestion})}function IH($,Z){for(let Y of RH)if(Y.pattern.test($))Z.push({type:"expression",message:`Security warning: ${Y.message}`,suggestion:"Remove dangerous code from template expressions"})}function EH($,Z){let Y=$.slice(0,Z).split(`
|
|
13431
13431
|
`);return{line:Y.length,column:Y[Y.length-1].length+1}}function kH($,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 SH($){return/@[a-z]+/i.test($)||/\{\{/.test($)}function bH($){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 wH,AH,RH;var wQ=y(()=>{wH=[{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"}],AH=[{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')"}],RH=[{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 MQ={};l(MQ,{renderSlot:()=>RQ,processSlots:()=>TQ,parseSlots:()=>AQ,parseSlotElement:()=>CH,extractSlotContent:()=>xH,applySlots:()=>fH});function yH($,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 AQ($){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=yH($,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 CH($){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 RQ($,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=PH(J,G)}return J}function PH($,Z){return $.replace(/\{\{\s*([^}]+)\s*\}\}/g,(Y,X)=>{try{let J=X.trim(),Q=NQ(J,Z);return d0(String(Q??""))}catch{return`{{ ${X} }}`}})}function NQ($,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 TQ($,Z,Y){let X=$;X=await vH(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]=NQ(F,Y)}return await RQ(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 vH($,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 xH($){let Z=AQ($);return{defaultSlot:Z.default,namedSlots:Z.named}}async function fH($,Z,Y,X){return await TQ($,{default:Z,named:Y},X)}var DQ=y(()=>{a0();V0()});import gH from"fs";import h from"path";function IQ($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function dH($){return/\bjs\b/.test($)||/\blang\s*=\s*["']?(js|javascript)["']?/i.test($)}function m1($){return!dH($)}function l1($){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:s0()}).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 uH($){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 mH($){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 lH($){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 cH($,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 mH(K)){let W=z.trim();if(!W||W.startsWith("..."))continue;let U=lH(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 bY($,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 pH($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function z1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:W}=await Promise.resolve().then(() => (a5(),k4)),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"&&pH(_)?_:"";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 mH($){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 lH($){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 cH($,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 mH(K)){let W=z.trim();if(!W||W.startsWith("..."))continue;let U=lH(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 bY($,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 pH($){return $==="visible"||$==="idle"||$==="interaction"||$.startsWith("media:")}async function z1($,Z,Y,X,J,Q,G,K=new Set,z){let{extractVariables:W}=await Promise.resolve().then(() => (a5(),k4)),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"&&pH(_)?_:"";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 m=h.join(h.dirname(Q),"components");if(!g.includes(m))g.push(m);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,T0=G0??h.dirname(Q),C0=[];if(G0)C0.push(h.resolve(G0,"resources/views/components")),C0.push(h.resolve(G0,"resources/components")),C0.push(h.resolve(G0,"src/components")),C0.push(h.resolve(G0,"components"));C0.push(h.resolve(import.meta.dir,"components"));for(let W0 of C0)if(!g.includes(W0))g.push(W0);let M1=[...new Set(g.map((W0)=>{if(!W0)return W0;return h.isAbsolute(W0)?W0:h.resolve(T0,W0)}))];if(g.length=0,g.push(...M1),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 D1 of v){let T5=h.join(W0,D1);if(V.push(T5),await i(T5)){F=T5;break}}if(F)break;if(!F)try{let D1=await import("fs");if(!D1.statSync(W0,{throwIfNoEntry:!1})?.isDirectory())continue;let B$=8,t=[{path:W0,depth:0}];while(t.length>0&&!F){let o0=t.pop();if(o0.depth>=B$)continue;let W7;try{W7=D1.readdirSync(o0.path,{withFileTypes:!0})}catch{continue}for(let j$ of W7){if(!j$.isDirectory())continue;if(j$.name==="node_modules"||j$.name.startsWith("."))continue;let S9=h.join(o0.path,j$.name);for(let UG of v){let U7=h.join(S9,UG);if(V.push(U7),await i(U7)){F=U7;break}}if(F)break;t.push({path:S9,depth:o0.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:u,applySlots:o}=await Promise.resolve().then(() => (DQ(),MQ)),{defaultSlot:N0,namedSlots:Z1}=u(Y);f=await o(f,N0||Y,Z1,N);for(let[
|
|
13435
|
+
`)}`:"";return`[Error loading component: ENOENT: no such file or directory, open '${$}']${C}`}z.add(F);let A;if(G$.has(F))A=G$.get(F);else try{A=await Bun.file(F).text(),G$.set(F,A)}catch(C){return`[Error loading component: ${C instanceof Error?C.message:String(C)}]`}let w=new Set(["__originalFilePath","__importedComponents"]),R={};for(let[C,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:{}};cH(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,I=[...A.matchAll(D)],E=[];for(let C of I){let v=C[1]||"",x=C[2]||"",g=v.includes("server");if(m1(v)&&x.trim())x=l1(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=r0(s,N,F);let G0=v.replace(/\s*\bts\b/g,"").replace(/\s*\blang\s*=\s*["']?(ts|typescript)["']?/gi,"");E.push(`<script${G0}>${s}</script>`)}}let k=A.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i),S=k?k[1]:"",b=k?k[2]:"",P="",d=S&&/\bscoped\b/i.test(S);if(k)P=`<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 m=g.match(/<style\b([^>]*)>([\s\S]*?)<\/style>/i);if(m)v.push(`<style${m[1]}>${m[2]}</style>`);return""}),f=f.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/gi,""),v.length>0)P=`${P}${v.join(`
|
|
13436
|
+
`)}`}if(Y&&f.includes("{{ text || slot }}"))f=f.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,()=>Y);let{extractSlotContent:u,applySlots:o}=await Promise.resolve().then(() => (DQ(),MQ)),{defaultSlot:N0,namedSlots:Z1}=u(Y);f=await o(f,N0||Y,Z1,N);for(let[C,v]of Object.entries(N))if(typeof v==="string"){if(v.includes("<")&&v.includes(">")||v.includes("<")||v.includes(""")){let x=N7(v);N[C]=x}}let y0=E.some((C)=>/\b(state|derived|effect)\s*(?:<[^<>()]*>)?\s*\(/.test(C)),E0={...G,componentsDir:h.dirname(F),skipSignalsRuntime:!0,skipEventDirectives:y0,defaultLayout:void 0};N.__stxProcessingDepth=(J.__stxProcessingDepth||0)+1;let X0=await A0(f,N,F,E0,z),F0=`stx_${L.replace(/[^a-zA-Z0-9]/g,"_")}_${++hH}_${Math.random().toString(36).slice(2,8)}`,U0=X0;if(y0){let C="";if(Object.keys(Z).length>0)try{C=` data-stx-props="${IQ(JSON.stringify(Z))}"`}catch{}let v=B?` stx-hydrate="${IQ(B)}"`:"";if(U0=`<div data-stx-scope="${F0}"${C}${v}>${X0}</div>`,U0=E.map((g)=>{let m=g.match(/<script([^>]*)>([\s\S]*)<\/script>/i);if(!m)return g;let[,s,G0]=m,T0=J1(G0),C0=`
|
|
13437
13437
|
(function() {
|
|
13438
13438
|
const { state, derived, effect, batch, defineEmits, defineExpose, defineSlots, defineProps, withDefaults, useStore, useFetch, useRef, useQuery, useMutation, useOptimistic, useDebounce, useDebouncedValue, useThrottle, useInterval, useTimeout, useToggle, useCounter, useClickOutside, useFocus, useAsync, useLocalStorage, useSessionStorage, useCookie, useReactiveProp, useEventListener, useWebSocket, useColorMode, useDark, useHead, useSeoMeta, definePageMeta, useRoute, useSearchParams, navigate, goBack, goForward, provide, inject, ref, reactive, computed, watch, watchEffect, nextTick } = window.stx;
|
|
13439
13439
|
const __scope = window.stx._scopes = window.stx._scopes || {};
|
|
@@ -13445,23 +13445,23 @@ ${V.map((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
|
+
${T0}
|
|
13449
13449
|
|
|
13450
13450
|
// Register all defined signals and functions in this scope
|
|
13451
13451
|
const __localVars = {};
|
|
13452
13452
|
try {
|
|
13453
|
-
${uH(
|
|
13453
|
+
${uH(T0).map((M1)=>`if (typeof ${M1} !== 'undefined') __localVars['${M1}'] = ${M1};`).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="${F0}" data-stx-scoped${s}>${C0}</script>`;return`<script data-stx-scoped${s}>${C0}</script>`}).join(`
|
|
13459
13459
|
`)+`
|
|
13460
|
-
`+U0,
|
|
13461
|
-
`+
|
|
13462
|
-
`+
|
|
13460
|
+
`+U0,P)U0+=`
|
|
13461
|
+
`+P}else{if(P)U0+=`
|
|
13462
|
+
`+P;if(E.length>0){let C=N.__stx_event_bindings||[],v=J$(N),x=await Promise.all(E.map(async(g)=>{let m=g.match(/<script\b[^>]*>([\s\S]*?)<\/script>/);if(!m)return g;return await Q$(m[1],{eventBindings:C,templateContent:U0,filePath:F,projectRoot:process.cwd(),serverData:v})}));U0+=`
|
|
13463
13463
|
`+x.join(`
|
|
13464
|
-
`),N.__stx_event_bindings=[]}}if(d){let
|
|
13464
|
+
`),N.__stx_event_bindings=[]}}if(d){let C=P4(U0,F);if(C.hasScoped)U0=C.html}return U0}catch(j){return`[Error processing component: ${j instanceof Error?j.message:String(j)}]`}finally{U.delete($)}}async function i($){return Bun.file($).exists()}function j9($,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 X4($,Z,Y,X){let J=await iH($,Z,Y,X);if(J===null)return null;let Q=j9(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(j9(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 iH($,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=j9(_,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=gH.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 EQ($,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 EQ($,G)}}catch{}return{lineNumber:X,lineContent:J,context:Q}}function J0($,Z,Y,X,J,Q){let{lineNumber:G,context:K}=EQ(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+=`
|