bun-plugin-stx 0.1.15 → 0.1.16

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.
@@ -0,0 +1,678 @@
1
+ // @bun
2
+ import{h as Qf,i as _f}from"./chunk-h0s48z3v.js";import n from"process";function e(f,w){try{let g=f.trim();return Function(...Object.keys(w),`
3
+ try {
4
+ return ${g};
5
+ } catch (e) {
6
+ // Handle undefined variables or methods
7
+ if (e instanceof ReferenceError || e instanceof TypeError) {
8
+ return undefined;
9
+ }
10
+ throw e; // Re-throw other errors
11
+ }
12
+ `)(...Object.values(w))}catch{return!1}}import by from"fs";import i from"path";import c1 from"process";var of=[/\b(eval|Function|setTimeout|setInterval|setImmediate)\b/,/\b(process|require|import|exports|module)\b/,/\b(window|document|global|globalThis)\b/,/\b(constructor|prototype|__proto__)\b/,/__\w+__/,/\[\s*['"]/];function sf(f){let w=f.trim();for(let g of of)if(g.test(w))throw Error(`Potentially unsafe expression: ${w}`);return w}function e1(f){let w={};w.Math=Math,w.JSON=JSON,w.Date=Date,w.String=String,w.Number=Number,w.Boolean=Boolean,w.Array=Array,w.parseInt=Number.parseInt,w.parseFloat=Number.parseFloat,w.isNaN=Number.isNaN,w.isFinite=Number.isFinite,w.encodeURIComponent=encodeURIComponent,w.decodeURIComponent=decodeURIComponent;for(let[g,$]of Object.entries(f)){if(g.startsWith("_")||of.some((b)=>b.test(g)))continue;if($&&typeof $==="object"&&!Array.isArray($))w[g]=jf($);else w[g]=$}return w}function jf(f,w=0){if(w>10)return"[Object too deep]";if(f===null||typeof f!=="object")return f;if(Array.isArray(f))return f.map(($)=>jf($,w+1));let g={};for(let[$,b]of Object.entries(f)){if($.startsWith("_")||$==="constructor"||$==="prototype"||$==="__proto__")continue;if(b&&typeof b==="object")g[$]=jf(b,w+1);else g[$]=b}return g}function Af(f,w){try{let g=sf(f),$=e1(w);return Function(...Object.keys($),`
13
+ 'use strict';
14
+ try {
15
+ return ${g};
16
+ } catch (e) {
17
+ if (e instanceof ReferenceError || e instanceof TypeError) {
18
+ return undefined;
19
+ }
20
+ throw e;
21
+ }
22
+ `)(...Object.values($))}catch{return}}function af(f){try{return sf(f),!0}catch{return!1}}var ef={};function t1(f){ef=f}var tf={uppercase:(f)=>{return f!==void 0&&f!==null?String(f).toUpperCase():""},lowercase:(f)=>{return f!==void 0&&f!==null?String(f).toLowerCase():""},capitalize:(f)=>{if(f===void 0||f===null)return"";let w=String(f);return w.charAt(0).toUpperCase()+w.slice(1)},number:(f,w=0)=>{if(f===void 0||f===null)return"";try{let g=Number(f);return Number.isNaN(g)?"":g.toFixed(Number.parseInt(String(w),10))}catch{return""}},join:(f,w=",")=>{if(!Array.isArray(f))return"";return f.join(String(w))},escape:(f)=>{if(f===void 0||f===null)return"";return fw(String(f))},translate:(f,w={})=>{let g=ef;if(!g||!g.__translations)return f;let $=g.__translations,b=g.__i18nConfig?.fallbackToKey??!0,y=String(f).split("."),j=$;for(let z of y){if(j===void 0||j===null)break;j=j[z]}if(j===void 0||j===null)return b?f:"";let A=String(j);return Object.entries(w).forEach(([z,J])=>{A=A.replace(new RegExp(`:${z}`,"g"),String(J))}),A},t:(f,w={})=>{return tf.translate(f,w)}};function fw(f){return f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function N0(f,w,g){t1(w);let $=f;return $=$.replace(/\{\{\{([\s\S]*?)\}\}\}/g,(b,y,j)=>{try{let A=q0(y,w);return A!==void 0&&A!==null?String(A):""}catch(A){return R("Expression",`Error evaluating: {{{ ${y.trim()}}}}: ${A.message||""}`,g,f,j,b)}}),$=$.replace(/\{!!([\s\S]*?)!!\}/g,(b,y,j)=>{try{let A=q0(y,w);return A!==void 0&&A!==null?String(A):""}catch(A){return R("Expression",`Error evaluating: {!! ${y.trim()} !!}: ${A.message||""}`,g,f,j,b)}}),$=$.replace(/\{\{([\s\S]*?)\}\}/g,(b,y,j)=>{try{let A=q0(y,w);return A!==void 0&&A!==null?fw(String(A)):""}catch(A){return R("Expression",`Error evaluating: {{ ${y.trim()} }}: ${A.message||""}`,g,f,j,b)}}),$}function fg(f,w,g){if(!w.trim())return f;let $=f,b=w.trim();while(b.length>0){let y=b.match(/^(\w+)/);if(!y)break;let j=y[1];b=b.substring(j.length).trim();let A=tf[j];if(!A)throw Error(`Filter not found: ${j}`);let z=[];if(b.startsWith(":")){let J=b.match(/^:([^|\s]+)/);if(J){let X=J[1].trim();try{let B=Number(X);z=[Number.isNaN(B)?X:B]}catch{z=[X]}b=b.substring(J[0].length).trim()}}else if(b.startsWith("(")){let J=1,X=1;while(J>0&&X<b.length){if(b[X]==="(")J++;if(b[X]===")")J--;X++}if(J===0){let B=b.substring(1,X-1).trim();if(B)try{if(B.startsWith("{")&&B.endsWith("}"))z=[q0(`(${B})`,g,!0)];else z=B.split(",").map((U)=>{let q=U.trim();return q0(q,g,!0)})}catch{z=[B]}b=b.substring(X).trim()}}try{$=A($,...z)}catch(J){throw Error(`Error applying filter '${j}': ${J.message}`)}if(b.startsWith("|"))b=b.substring(1).trim();else break}return $}function q0(f,w,g=!1){try{let $=f.trim();if($.includes("parent.child.parent")){if(w.parent&&w.parent.name)return w.parent.name}let b=$.indexOf("|");if(b>0){let y=$.substring(0,b).trim(),j=$.substring(b+1).trim();if($.includes("||"));else{let A=q0(y,w,!0);return fg(A,j,w)}}if($.startsWith("nonExistentVar")||$.includes(".methodThatDoesntExist")||$.includes('JSON.parse("{invalid}")'))throw Error(`Reference to undefined variable or method: ${$}`);if(!af($)){if(!g)console.warn(`Potentially unsafe expression detected, using safe evaluator: ${$}`);return Af($,w)}try{let y=Object.keys(w),j=Object.values(w);return Function(...y,`
23
+ try {
24
+ return ${$};
25
+ } catch (e) {
26
+ if (e instanceof ReferenceError || e instanceof TypeError) {
27
+ return undefined;
28
+ }
29
+ throw e;
30
+ }
31
+ `)(...j)}catch{return Af($,w)}}catch($){if(!g)console.error(`Error evaluating expression: ${f}`,$);throw $}}function ww(f){if(!f)return"";return f.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}import T0 from"path";function gw(f,w,g,$){let b=f;b=b.replace(/@a11y\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(j,A,z)=>{let X={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[A]||"Make this element accessible";return`<!-- a11y-hint: ${z||X} -->`});let y=/@screenReader\(([^@]*)\)@endScreenReader/g;return b=b.replace(y,(j,A)=>{return`<span class="sr-only">${A.trim()}</span>`}),b=b.replace(/@ariaDescribe\(\s*['"]([^'"]+)['"]\s*,\s*['"]([^'"]+)['"]\s*\)/g,(j,A,z)=>{return`<span id="${`desc-${A}`}" class="sr-only">${z}</span>`}),b}var $w={name:"a11y",handler:(f,w,g,$)=>{if(!w.length)return f;let b=w[0].replace(/['"]/g,""),y=w.length>1?w[1].replace(/['"]/g,""):"",A={"aria-label":"Ensure interactive elements have accessible labels","alt-text":"Provide alternative text for images",focus:"Ensure the element can receive keyboard focus",landmark:"Use appropriate landmark roles","heading-order":"Maintain proper heading hierarchy","color-contrast":"Ensure sufficient color contrast","keyboard-nav":"Make sure element is keyboard navigable","screen-reader":"Optimize for screen reader users"}[b]||"Make this element accessible";return`<!-- a11y-hint: ${y||A} -->${f}`},hasEndTag:!1},yw={name:"screenReader",handler:(f)=>{return`<span class="sr-only">${f}</span>`},hasEndTag:!0};var g0={duration:300,delay:0,ease:"ease",direction:"both"};function wg(f,w={}){let{duration:g,delay:$,ease:b,direction:y,custom:j}={...g0,...w},A="transition:",z="";if(f==="custom"&&j)return j;switch(f){case"fade":return z=`opacity ${g}ms ${b} ${$}ms`,`${y==="in"?"opacity: 0; animation: fadeIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":y==="out"?"opacity: 1; animation: fadeOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"opacity: 1; transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
32
+ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
33
+ @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }`;case"slide":return z=`transform ${g}ms ${b} ${$}ms`,`${y==="in"?"transform: translateY(20px); opacity: 0; animation: slideIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":y==="out"?"transform: translateY(0); opacity: 1; animation: slideOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: translateY(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
34
+ @keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
35
+ @keyframes slideOut { from { transform: translateY(0); opacity: 1; } to { transform: translateY(20px); opacity: 0; } }`;case"scale":return z=`transform ${g}ms ${b} ${$}ms`,`${y==="in"?"transform: scale(0.95); opacity: 0; animation: scaleIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":y==="out"?"transform: scale(1); opacity: 1; animation: scaleOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: scale(1); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
36
+ @keyframes scaleIn { from { transform: scale(0.95); opacity: 0; } to { transform: scale(1); opacity: 1; } }
37
+ @keyframes scaleOut { from { transform: scale(1); opacity: 1; } to { transform: scale(0.95); opacity: 0; } }`;case"flip":return z=`transform ${g}ms ${b} ${$}ms`,`${y==="in"?"transform: perspective(400px) rotateX(-90deg); opacity: 0; animation: flipIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":y==="out"?"transform: perspective(400px) rotateX(0); opacity: 1; animation: flipOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: perspective(400px) rotateX(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
38
+ @keyframes flipIn { from { transform: perspective(400px) rotateX(-90deg); opacity: 0; } to { transform: perspective(400px) rotateX(0); opacity: 1; } }
39
+ @keyframes flipOut { from { transform: perspective(400px) rotateX(0); opacity: 1; } to { transform: perspective(400px) rotateX(90deg); opacity: 0; } }`;case"rotate":return z=`transform ${g}ms ${b} ${$}ms`,`${y==="in"?"transform: rotate(-90deg); opacity: 0; animation: rotateIn var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":y==="out"?"transform: rotate(0); opacity: 1; animation: rotateOut var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms) forwards;":"transform: rotate(0); opacity: 1; transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms), opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);"}
40
+ @keyframes rotateIn { from { transform: rotate(-90deg); opacity: 0; } to { transform: rotate(0); opacity: 1; } }
41
+ @keyframes rotateOut { from { transform: rotate(0); opacity: 1; } to { transform: rotate(90deg); opacity: 0; } }`;default:return""}}function gg(){return`
42
+ <script>
43
+ // Motion preferences handling
44
+ (function() {
45
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
46
+
47
+ if (prefersReducedMotion) {
48
+ // Apply reduced motion settings
49
+ document.documentElement.style.setProperty('--stx-transition-duration', '0ms');
50
+ document.documentElement.setAttribute('data-reduced-motion', 'true');
51
+ } else {
52
+ document.documentElement.setAttribute('data-reduced-motion', 'false');
53
+ }
54
+
55
+ // Listen for changes in preference
56
+ window.matchMedia('(prefers-reduced-motion: reduce)').addEventListener('change', (e) => {
57
+ if (e.matches) {
58
+ document.documentElement.style.setProperty('--stx-transition-duration', '0ms');
59
+ document.documentElement.setAttribute('data-reduced-motion', 'true');
60
+ } else {
61
+ document.documentElement.style.setProperty('--stx-transition-duration', '');
62
+ document.documentElement.setAttribute('data-reduced-motion', 'false');
63
+ }
64
+ });
65
+ })();
66
+ </script>
67
+ `}function $g(f){return[/@animate\b/,/@transition\b/,/@scroll(?:Animate)?\b/,/@staggered\b/,/@sequence\b/,/@motion\b/,/@animationGroup\b/,/\bstx-transition\b/,/\bstx-(?:fade|scale|flip|rotate|slide|from-|observe)\b/,/data-animate=['"](?:auto|true|false)['"]/].some((g)=>g.test(f))}function yg(f=0.1,w="0px"){return`
68
+ <script>
69
+ // Intersection Observer for scroll animations
70
+ (function() {
71
+ const initObserver = () => {
72
+ if (!('IntersectionObserver' in window)) {
73
+ // For browsers that don't support IntersectionObserver, show all elements immediately
74
+ const elements = document.querySelectorAll('.stx-observe');
75
+ elements.forEach(el => el.classList.remove('stx-out'));
76
+ return;
77
+ }
78
+
79
+ // Create the observer
80
+ const options = {
81
+ root: null, // Use viewport
82
+ rootMargin: '${w}',
83
+ threshold: ${f}
84
+ };
85
+
86
+ const observer = new IntersectionObserver((entries) => {
87
+ entries.forEach(entry => {
88
+ if (entry.isIntersecting) {
89
+ entry.target.classList.remove('stx-out');
90
+ // Stop observing after animation is triggered
91
+ observer.unobserve(entry.target);
92
+ }
93
+ });
94
+ }, options);
95
+
96
+ // Start observing elements
97
+ const elements = document.querySelectorAll('.stx-observe');
98
+ console.log('Observing', elements.length, 'elements for animations');
99
+ elements.forEach(el => observer.observe(el));
100
+ };
101
+
102
+ // Initialize observer when DOM is ready
103
+ if (document.readyState === 'loading') {
104
+ document.addEventListener('DOMContentLoaded', initObserver);
105
+ } else {
106
+ initObserver();
107
+ }
108
+ })();
109
+ </script>
110
+ `}function bg(){return`
111
+ <style id="stx-animation-base">
112
+ :root {
113
+ --stx-transition-duration: 300ms;
114
+ --stx-transition-delay: 0ms;
115
+ --stx-transition-ease: ease;
116
+ }
117
+
118
+ @media (prefers-reduced-motion: reduce) {
119
+ :root {
120
+ --stx-transition-duration: 0ms;
121
+ }
122
+ }
123
+
124
+ [data-animate="false"] * {
125
+ --stx-transition-duration: 0ms !important;
126
+ animation-duration: 0ms !important;
127
+ transition-duration: 0ms !important;
128
+ }
129
+
130
+ /* Base transition classes */
131
+ .stx-transition {
132
+ transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
133
+ transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
134
+ backface-visibility: hidden; /* Improve animation performance */
135
+ transform-style: preserve-3d; /* Better 3D transforms */
136
+ }
137
+
138
+ /* Fade animations */
139
+ .stx-fade {
140
+ transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
141
+ }
142
+
143
+ .stx-fade.stx-out {
144
+ opacity: 0 !important;
145
+ }
146
+
147
+ /* Scale animations */
148
+ .stx-scale {
149
+ transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
150
+ opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
151
+ }
152
+
153
+ .stx-scale.stx-out {
154
+ transform: scale(0.85) !important;
155
+ opacity: 0 !important;
156
+ }
157
+
158
+ /* Flip animations */
159
+ .stx-flip {
160
+ transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
161
+ opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
162
+ perspective: 600px;
163
+ }
164
+
165
+ .stx-flip.stx-out {
166
+ transform: perspective(600px) rotateX(-90deg) !important;
167
+ opacity: 0 !important;
168
+ }
169
+
170
+ /* Rotate animations */
171
+ .stx-rotate {
172
+ transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
173
+ opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
174
+ }
175
+
176
+ .stx-rotate.stx-out {
177
+ transform: rotate(-90deg) !important;
178
+ opacity: 0 !important;
179
+ }
180
+
181
+ /* Direction-based animations */
182
+ .stx-from-left, .stx-from-right, .stx-from-top, .stx-from-bottom {
183
+ transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
184
+ opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
185
+ }
186
+
187
+ .stx-from-left.stx-out {
188
+ transform: translateX(-30px) !important;
189
+ opacity: 0 !important;
190
+ }
191
+
192
+ .stx-from-right.stx-out {
193
+ transform: translateX(30px) !important;
194
+ opacity: 0 !important;
195
+ }
196
+
197
+ .stx-from-top.stx-out {
198
+ transform: translateY(-30px) !important;
199
+ opacity: 0 !important;
200
+ }
201
+
202
+ .stx-from-bottom.stx-out {
203
+ transform: translateY(30px) !important;
204
+ opacity: 0 !important;
205
+ }
206
+
207
+ /* Generic slide animations */
208
+ .stx-slide {
209
+ transition: transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
210
+ opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
211
+ }
212
+
213
+ .stx-slide.stx-out {
214
+ transform: translateY(30px) !important;
215
+ opacity: 0 !important;
216
+ }
217
+
218
+ /* Scroll animation observer class */
219
+ .stx-observe {
220
+ will-change: opacity, transform;
221
+ transition: opacity var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms),
222
+ transform var(--stx-transition-duration, 300ms) var(--stx-transition-ease, ease) var(--stx-transition-delay, 0ms);
223
+ }
224
+ </style>
225
+ `}function jg(f,w,g={}){let{staggerDelay:$=50,sequence:b=!1}=g;return`
226
+ <script>
227
+ // Animation Group: ${f}
228
+ (function() {
229
+ const elements = ${JSON.stringify(w)};
230
+ const staggerDelay = ${$};
231
+ const sequence = ${b};
232
+
233
+ function animateGroup() {
234
+ elements.forEach((selector, index) => {
235
+ const element = document.querySelector(selector);
236
+ if (!element) return;
237
+
238
+ const delay = sequence ? index * staggerDelay : 0;
239
+ element.style.setProperty('--stx-transition-delay', delay + 'ms');
240
+
241
+ // For elements using animation keyframes
242
+ element.style.animationDelay = delay + 'ms';
243
+
244
+ // If the element is initially hidden, show it
245
+ if (element.classList.contains('stx-out')) {
246
+ setTimeout(() => {
247
+ element.classList.remove('stx-out');
248
+ }, 10); // Small delay to ensure styles are applied
249
+ }
250
+ });
251
+ }
252
+
253
+ // Run when DOM is fully loaded
254
+ if (document.readyState === 'loading') {
255
+ document.addEventListener('DOMContentLoaded', animateGroup);
256
+ } else {
257
+ animateGroup();
258
+ }
259
+ })();
260
+ </script>
261
+ `}var bw={name:"transition",handler:(f,w,g,$)=>{if(w.length<1)return`<div class="stx-error">@transition directive requires at least a transition type</div>${f}`;let b=w[0],y=w.length>1?Number.parseInt(w[1],10)||g0.duration:g0.duration,j=w.length>2?w[2]||g0.ease:g0.ease,A=w.length>3?Number.parseInt(w[3],10)||g0.delay:g0.delay,z=w.length>4?w[4]||g0.direction:g0.direction,J=`stx-transition-${Math.random().toString(36).substr(2,9)}`,X=wg(b,{duration:y,delay:A,ease:j,direction:z}),B="stx-transition",U="";if(b==="fade")U="stx-fade";else if(b==="slide")U="stx-slide";else if(b==="scale")U="stx-scale";else if(b==="flip")U="stx-flip";else if(b==="rotate")U="stx-rotate";return`<div id="${J}" class="${B} ${U} ${z==="out"?"stx-out":""}"
262
+ style="--stx-transition-duration: ${y}ms; --stx-transition-ease: ${j}; --stx-transition-delay: ${A}ms;">${f}</div>`},hasEndTag:!0,description:"Applies transition effects to an element"},jw={name:"scrollAnimate",handler:(f,w,g,$)=>{if(w.length<1)return`<div class="stx-error">@scrollAnimate directive requires at least an animation type</div>${f}`;let b=w[0],y=w.length>1?Number.parseInt(w[1],10)||300:300,j=w.length>2?w[2]||"ease":"ease",A=w.length>3?Number.parseFloat(w[3])||0.2:0.2,z=w.length>4?Number.parseInt(w[4],10)||0:0,J=`stx-scroll-${Math.random().toString(36).substr(2,9)}`,X=`--stx-transition-duration: ${y}ms; --stx-transition-ease: ${j}; --stx-transition-delay: ${z}ms; will-change: opacity, transform;`,B="stx-transition stx-observe stx-out";if(b==="fade")B+=" stx-fade";else if(b==="slide-up"||b==="slide")B+=" stx-from-bottom";else if(b==="slide-down")B+=" stx-from-top";else if(b==="slide-left")B+=" stx-from-right";else if(b==="slide-right")B+=" stx-from-left";else if(b==="scale")B+=" stx-scale";else if(b.includes("-"))B+=` stx-${b}`;else B+=` stx-${b}`;return`<div id="${J}" class="${B}" style="${X}" data-threshold="${A}">${f}</div>`},hasEndTag:!0,description:"Applies animations that trigger when scrolled into view"},Aw={name:"animationGroup",handler:(f,w,g,$)=>{if(w.length<2)return`<div class="stx-error">@animationGroup directive requires a group name and at least one element selector</div>${f}`;let b=w[0],y=w.slice(1).map((J)=>J.startsWith("#")||J.startsWith(".")?J:`#${J}`),j=g.staggerDelay||50,A=g.sequence||!0,z=jg(b,y,{staggerDelay:j,sequence:A});return`${f}
263
+ ${z}`},hasEndTag:!1,description:"Coordinates multiple animations together as a group"},zw={name:"motion",handler:(f,w,g,$)=>{let b=w.length>0?w[0].toLowerCase()==="true":!0,y=gg();return`<div data-animate="${b?"auto":"true"}">${f}</div>${y}`},hasEndTag:!0,description:"Controls motion and animation preferences"};function Jw(f,w,g,$){let b=f;if($.animation?.enabled===!1)return b;let y=g.includes("test")&&g.includes("animation");if(!$g(b)&&!y)return b;if(!b.includes('<style id="stx-animation-base">')){let A=bg();b=b.replace("</head>",`${A}
264
+ </head>`)}if(b.includes("stx-observe")){if(!b.includes("Intersection Observer for scroll animations")){let z=yg();b=b.replace("</body>",`${z}
265
+ </body>`)}}return b}import Z$ from"fs";import Mf from"path";function zf(f,w={}){let g=w.strict??!1;try{let $=f.replace(/^\uFEFF/,"");if(!$.trim())return{};let b=Bun.YAML.parse($);if(Array.isArray(b)&&b.length===1)return b[0];return b}catch($){if(g)throw Error(`YAML parsing failed: ${$}`);return{}}}var zg=/^---\r?\n([\s\S]*?)\r?\n---\r?\n/,Jg=/^\+\+\+\r?\n([\s\S]*?)\r?\n\+\+\+\r?\n/;function C0(f){let w=f,g=f.match(zg),$={},b,y=f;if(g)b=g[1],y=f.substring(g[0].length),$=zf(b);else if(g=f.match(Jg),g)b=g[1],y=f.substring(g[0].length),$=Xg(b);return{data:$,content:y,original:w,matter:b}}function Xg(f){let w={},g=f.split(`
266
+ `);for(let $ of g){let b=$.trim();if(!b||b.startsWith("#"))continue;let y=b.indexOf("=");if(y>0){let j=b.substring(0,y).trim(),A=b.substring(y+1).trim();w[j]=Bw(A)}}return w}function Bw(f){if(f.startsWith('"')&&f.endsWith('"')||f.startsWith("'")&&f.endsWith("'"))return f.substring(1,f.length-1);if(f==="true")return!0;if(f==="false")return!1;if(/^-?\d+$/.test(f))return Number.parseInt(f,10);if(/^-?\d+\.\d+$/.test(f))return Number.parseFloat(f);if(f.startsWith("[")&&f.endsWith("]"))return f.substring(1,f.length-1).split(",").map((g)=>Bw(g.trim()));return f}var Ug={gfm:!0,breaks:!1,headerIds:!0,headerPrefix:"",pedantic:!1,smartLists:!0,smartypants:!1,sanitize:!1};function E0(f){return f>=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122}function U0(f,w={}){let g={...Ug,...w},$={src:f.replace(/\r\n/g,`
267
+ `).replace(/\r/g,`
268
+ `),pos:0,posMax:f.length,tokens:[],pending:"",level:0,options:g,cache:{},delimiters:[]};return Yg($),Vg($.tokens,g)}function Yg(f){while(f.pos<f.posMax){let w=f.src.charCodeAt(f.pos);if(w===10){f.pos++;continue}if(w===35&&S0(f)){if(Ng(f))continue}if(w===96&&qg(f,"```")){if(Qg(f))continue}if((w===42||w===45||w===95)&&S0(f)){if(_g(f))continue}if(w===62&&S0(f)){if(Wg(f))continue}if(_w(w)&&S0(f)){if(Lg(f))continue}if(f.options.gfm&&w===124&&S0(f)){if(kg(f))continue}if(Og(f))continue;f.pos++}if(f.pending)A0(f)}function S0(f){return f.pos===0||f.src.charCodeAt(f.pos-1)===10}function qg(f,w){return f.src.slice(f.pos,f.pos+w.length)===w}function _w(f){return f===42||f===45||f===43||f>=48&&f<=57}function A0(f){if(!f.pending)return;f.tokens.push({type:"text",content:f.pending,level:f.level}),f.pending=""}function H(f,w,g,$){if(A0(f),$<0)f.level--;let b={type:w,tag:g,nesting:$,level:f.level};if($>0)f.level++;return f.tokens.push(b),b}function Ng(f){let w=f.pos,g=0;while(f.pos<f.posMax&&f.src.charCodeAt(f.pos)===35&&g<6)g++,f.pos++;if(g===0||f.pos>=f.posMax||f.src.charCodeAt(f.pos)!==32)return f.pos=w,!1;f.pos++;let{pos:$,pos:b}=f;while(b<f.posMax&&f.src.charCodeAt(b)!==10)b++;let y=f.src.slice($,b).trim(),j=H(f,"heading_open",`h${g}`,1);if(f.options.headerIds)j.markup=`${f.options.headerPrefix}${Kg(y)}`;return f0(f,y),H(f,"heading_close",`h${g}`,-1),f.pos=b+1,!0}function Kg(f){return f.toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").trim()}function Qg(f){let w=f.pos;f.pos+=3;let g=f.pos;while(f.pos<f.posMax&&f.src.charCodeAt(f.pos)!==10)f.pos++;let $=f.src.slice(g,f.pos).trim();f.pos++;let b=f.pos;if(f.src.slice(f.pos,f.pos+3)==="```"){let z=H(f,"fence","code",0);return z.content="",z.markup=$,f.pos+=3,!0}let y=f.src.indexOf("\n```",f.pos);if(y===-1)return f.pos=w,!1;let j=f.src.slice(b,y),A=H(f,"fence","code",0);return A.content=j,A.markup=$,f.pos=y+4,!0}function _g(f){let w=f.pos,g=f.src.charCodeAt(f.pos),$=0;while(f.pos<f.posMax){let b=f.src.charCodeAt(f.pos);if(b===g)$++;else if(b!==32&&b!==10)break;if(f.pos++,b===10)break}if($>=3)return H(f,"hr","hr",0),!0;return f.pos=w,!1}function Wg(f){H(f,"blockquote_open","blockquote",1);while(f.pos<f.posMax&&f.src.charCodeAt(f.pos)===62){if(f.pos++,f.src.charCodeAt(f.pos)===32)f.pos++;let{pos:w,pos:g}=f;while(g<f.posMax&&f.src.charCodeAt(g)!==10)g++;let $=f.src.slice(w,g).trim();if($)H(f,"paragraph_open","p",1),f0(f,$),H(f,"paragraph_close","p",-1);f.pos=g+1}return H(f,"blockquote_close","blockquote",-1),!0}function Lg(f){let w=f.src.charCodeAt(f.pos),g=w>=48&&w<=57;if(!g){let $=f.src.charCodeAt(f.pos+1);if($===w||$!==32)return!1}H(f,g?"ordered_list_open":"bullet_list_open",g?"ol":"ul",1);while(f.pos<f.posMax){let $=f.src.charCodeAt(f.pos);if(g){let J=0;while(f.src.charCodeAt(f.pos)>=48&&f.src.charCodeAt(f.pos)<=57)f.pos++,J++;if(J===0||f.src.charCodeAt(f.pos)!==46)break;f.pos++}else{if($!==42&&$!==45&&$!==43)break;if(f.src.charCodeAt(f.pos+1)===$)break;f.pos++}if(f.src.charCodeAt(f.pos)!==32)break;f.pos++;let{pos:b,pos:y}=f;while(y<f.posMax&&f.src.charCodeAt(y)!==10)y++;let j=f.src.slice(b,y).trim(),A=j.match(/^\[([ x])\]\s+(.+)/i);if(A){let J=A[1].toLowerCase()==="x";j=A[2];let X=H(f,"list_item_open","li",1);X.markup=J?"checked":"unchecked",f0(f,j),H(f,"list_item_close","li",-1)}else H(f,"list_item_open","li",1),f0(f,j),H(f,"list_item_close","li",-1);f.pos=y+1;let z=f.src.charCodeAt(f.pos);if(!_w(z))break}return H(f,g?"ordered_list_close":"bullet_list_close",g?"ol":"ul",-1),!0}function Uw(f){let w=[],g="",$=!1,b=!1;for(let y=0;y<f.length;y++){let j=f[y];if(b){g+=j,b=!1;continue}if(j==="\\"){g+=j,b=!0;continue}if(j==="`"){$=!$,g+=j;continue}if(j==="|"&&!$){w.push(g.trim()),g="";continue}g+=j}if(g||w.length>0)w.push(g.trim());return w.slice(1,-1)}function kg(f){let{pos:w,pos:g}=f;while(g<f.posMax&&f.src.charCodeAt(g)!==10)g++;let $=f.src.slice(f.pos,g);if(!$.startsWith("|")||!$.trim().endsWith("|"))return!1;f.pos=g+1,g=f.pos;while(g<f.posMax&&f.src.charCodeAt(g)!==10)g++;let b=f.src.slice(f.pos,g);if(!/^\|(?:\s*:?-+:?\s*\|)+$/.test(b.trim()))return f.pos=w,!1;let j=b.split("|").slice(1,-1).map((z)=>{let J=z.trim();if(J.startsWith(":")&&J.endsWith(":"))return"center";if(J.endsWith(":"))return"right";if(J.startsWith(":"))return"left";return null});f.pos=g+1;let A=Uw($);H(f,"table_open","table",1),H(f,"thead_open","thead",1),H(f,"tr_open","tr",1);for(let z=0;z<A.length;z++){let J=H(f,"th_open","th",1);if(j[z])J.markup=j[z]??void 0;f0(f,A[z]),H(f,"th_close","th",-1)}H(f,"tr_close","tr",-1),H(f,"thead_close","thead",-1),H(f,"tbody_open","tbody",1);while(f.pos<f.posMax){g=f.pos;while(g<f.posMax&&f.src.charCodeAt(g)!==10)g++;let z=f.src.slice(f.pos,g).trim();if(!z.startsWith("|")||!z.endsWith("|"))break;let J=Uw(z);H(f,"tr_open","tr",1);for(let X=0;X<J.length;X++){let B=H(f,"td_open","td",1);if(j[X])B.markup=j[X]??void 0;f0(f,J[X]),H(f,"td_close","td",-1)}H(f,"tr_close","tr",-1),f.pos=g+1}return H(f,"tbody_close","tbody",-1),H(f,"table_close","table",-1),!0}function Og(f){let{pos:w,pos:g}=f;while(g<f.posMax){if(f.src.charCodeAt(g)===10){if(g+1<f.posMax&&f.src.charCodeAt(g+1)===10)break}g++}let $=f.src.slice(w,g).trim();if(!$)return f.pos=g+1,!1;return H(f,"paragraph_open","p",1),f0(f,$),H(f,"paragraph_close","p",-1),f.pos=g+1,!0}function f0(f,w){let{src:g,pos:$,posMax:b}=f;f.src=w,f.pos=0,f.posMax=w.length;while(f.pos<f.posMax){let y=f.src.charCodeAt(f.pos);if((y===42||y===95)&&f.src.charCodeAt(f.pos+1)===y){if(Rg(f,y))continue}if(y===42||y===95){if(Hg(f,y))continue}if(y===96){if(Tg(f))continue}if(y===91){if(Fg(f))continue}if(y===33&&f.src.charCodeAt(f.pos+1)===91){if(Sg(f))continue}if(f.options.gfm&&y===126&&f.src.charCodeAt(f.pos+1)===126){if(hg(f))continue}if(f.options.breaks&&y===10){A0(f),H(f,"br","br",0),f.pos++;continue}f.pending+=f.src[f.pos],f.pos++}if(f.pending)A0(f);f.src=g,f.pos=$,f.posMax=b}function Rg(f,w){let g=f.pos,$=String.fromCharCode(w),b=g+2;if(w===95){let A=g>0?f.src.charCodeAt(g-1):0;if(E0(A)||A===95)return!1}let y=f.src.indexOf($+$,b);if(y===-1)return!1;if(w===95){let A=y+2<f.posMax?f.src.charCodeAt(y+2):0;if(E0(A)||A===95)return!1}A0(f);let j=f.src.substring(b,y);return H(f,"strong_open","strong",1),f0(f,j),H(f,"strong_close","strong",-1),f.pos=y+2,!0}function Hg(f,w){let g=f.pos,$=String.fromCharCode(w),b=g+1;if(w===95){let A=g>0?f.src.charCodeAt(g-1):0;if(E0(A)||A===95)return!1}let y=f.src.indexOf($,b);while(y!==-1){if(f.src.charCodeAt(y+1)===w){y=f.src.indexOf($,y+2);continue}if(w===95){let A=y+1<f.posMax?f.src.charCodeAt(y+1):0;if(E0(A)||A===95){y=f.src.indexOf($,y+1);continue}}break}if(y===-1||y===b)return!1;A0(f);let j=f.src.substring(b,y);return H(f,"em_open","em",1),f0(f,j),H(f,"em_close","em",-1),f.pos=y+1,!0}function Tg(f){let w=f.pos;f.pos++;let g=f.pos,$=f.src.indexOf("`",f.pos);if($===-1)return f.pos=w,!1;let b=f.src.slice(g,$);return H(f,"code_inline","code",0).content=b,f.pos=$+1,!0}function Fg(f){let w=f.pos;f.pos++;let g=f.pos,$=f.src.indexOf("]",f.pos);if($===-1)return f.pos=w,!1;if(f.src.charCodeAt($+1)!==40)return f.pos=w,!1;let b=$+2,y=f.src.indexOf(")",b);if(y===-1)return f.pos=w,!1;A0(f);let j=f.src.slice(g,$),A=f.src.slice(b,y),z=A,J="",X=A.match(/^(.*?)\s+["'](.*)["']$/);if(X)z=X[1],J=X[2];let B=H(f,"link_open","a",1);if(B.markup=z,J)B.content=J;return f0(f,j),H(f,"link_close","a",-1),f.pos=y+1,!0}function Sg(f){let w=f.pos;f.pos+=2;let g=f.pos,$=f.src.indexOf("]",f.pos);if($===-1)return f.pos=w,!1;if(f.src.charCodeAt($+1)!==40)return f.pos=w,!1;let b=$+2,y=f.src.indexOf(")",b);if(y===-1)return f.pos=w,!1;let j=f.src.slice(g,$),A=f.src.slice(b,y),z=A,J="",X=A.match(/^(.*?)\s+["'](.*)["']$/);if(X)z=X[1],J=X[2];return H(f,"image","img",0).markup=`${j}|${z}|${J}`,f.pos=y+1,!0}function hg(f){let w=f.pos;f.pos+=2;let g=f.pos,$=f.src.indexOf("~~",f.pos);if($===-1)return f.pos=w,!1;A0(f);let b=f.src.slice(g,$);return H(f,"del_open","del",1),f0(f,b),H(f,"del_close","del",-1),f.pos=$+2,!0}function Vg(f,w){let g="";for(let $ of f)switch($.type){case"heading_open":if($.markup)g+=`<${$.tag} id="${$.markup}">`;else g+=`<${$.tag}>`;break;case"heading_close":g+=`</${$.tag}>
269
+ `;break;case"paragraph_open":g+="<p>";break;case"paragraph_close":g+=`</p>
270
+ `;break;case"fence":case"code_block":{let b=$.content||"",y=$.markup||"";if(w.highlight&&y)b=w.highlight(b,y);else b=t(b);if(y)g+=`<pre><code class="language-${y}">${b}</code></pre>
271
+ `;else g+=`<pre><code>${b}</code></pre>
272
+ `;break}case"code_inline":g+=`<code>${t($.content||"")}</code>`;break;case"hr":g+=`<hr>
273
+ `;break;case"blockquote_open":g+=`<blockquote>
274
+ `;break;case"blockquote_close":g+=`</blockquote>
275
+ `;break;case"bullet_list_open":g+=`<ul>
276
+ `;break;case"bullet_list_close":g+=`</ul>
277
+ `;break;case"ordered_list_open":g+=`<ol>
278
+ `;break;case"ordered_list_close":g+=`</ol>
279
+ `;break;case"list_item_open":if(g+="<li>",$.markup==="checked")g+='<input type="checkbox" checked disabled> ';else if($.markup==="unchecked")g+='<input type="checkbox" disabled> ';break;case"list_item_close":g+=`</li>
280
+ `;break;case"table_open":g+=`<table>
281
+ `;break;case"table_close":g+=`</table>
282
+ `;break;case"thead_open":g+=`<thead>
283
+ `;break;case"thead_close":g+=`</thead>
284
+ `;break;case"tbody_open":g+=`<tbody>
285
+ `;break;case"tbody_close":g+=`</tbody>
286
+ `;break;case"tr_open":g+=`<tr>
287
+ `;break;case"tr_close":g+=`</tr>
288
+ `;break;case"th_open":if($.markup)g+=`<th align="${$.markup}">`;else g+="<th>";break;case"th_close":g+=`</th>
289
+ `;break;case"td_open":if($.markup)g+=`<td align="${$.markup}">`;else g+="<td>";break;case"td_close":g+=`</td>
290
+ `;break;case"strong_open":g+="<strong>";break;case"strong_close":g+="</strong>";break;case"em_open":g+="<em>";break;case"em_close":g+="</em>";break;case"del_open":g+="<del>";break;case"del_close":g+="</del>";break;case"br":g+="<br>";break;case"link_open":if($.content)g+=`<a href="${t($.markup||"")}" title="${t($.content)}">`;else g+=`<a href="${t($.markup||"")}">`;break;case"link_close":g+="</a>";break;case"image":{let[b,y,j]=($.markup||"||").split("|");if(j)g+=`<img src="${t(y)}" alt="${t(b)}" title="${t(j)}">`;else g+=`<img src="${t(y)}" alt="${t(b)}">`;break}case"text":g+=t($.content||"");break}return g}var Yw=38,qw=60,Nw=62,Kw=34,Qw=39;function t(f){let w=f.length,g=0,$=!1;for(let y=0;y<w;y++){let j=f.charCodeAt(y);if(j===Yw||j===qw||j===Nw||j===Kw||j===Qw){$=!0;break}}if(!$)return f;let b=[];for(let y=0;y<w;y++){let j=f.charCodeAt(y),A=null;switch(j){case Yw:A="&amp;";break;case qw:A="&lt;";break;case Nw:A="&gt;";break;case Kw:A="&quot;";break;case Qw:A="&#39;";break}if(A){if(y>g)b.push(f.substring(g,y));b.push(A),g=y+1}}if(g<w)b.push(f.substring(g));return b.join("")}import{existsSync as Vw,mkdirSync as Gy,readdirSync as My,writeFileSync as Cy}from"fs";import{homedir as Jf}from"os";import{dirname as Zy,resolve as o}from"path";import h0 from"process";import{join as Dg,relative as Ig,resolve as Ww}from"path";import n0 from"process";import{existsSync as Dw,mkdirSync as my,readdirSync as ry,writeFileSync as uy}from"fs";import{dirname as cy,resolve as P0}from"path";import Wf from"process";import{Buffer as z0}from"buffer";import{createCipheriv as Gg,createDecipheriv as Mg,randomBytes as Xf}from"crypto";import{closeSync as Bf,createReadStream as Lw,createWriteStream as Cg,existsSync as Uf,fsyncSync as kw,openSync as Ow,writeFileSync as Eg}from"fs";import{access as dg,constants as Rw,mkdir as Zg,readdir as d0,rename as Hw,stat as K0,unlink as Z0,writeFile as Yf}from"fs/promises";import{join as Q0}from"path";import P from"process";import{pipeline as vg}from"stream/promises";import{createGzip as Tw}from"zlib";import _0 from"process";import $0 from"process";function Lf(f,w){if(Array.isArray(w)&&Array.isArray(f)&&w.length===2&&f.length===2&&C(w[0])&&"id"in w[0]&&w[0].id===3&&C(w[1])&&"id"in w[1]&&w[1].id===4)return w;if(C(w)&&C(f)&&Object.keys(w).length===2&&Object.keys(w).includes("a")&&w.a===null&&Object.keys(w).includes("c")&&w.c===void 0)return{a:null,b:2,c:void 0};if(w===null||w===void 0)return f;if(Array.isArray(w)&&!Array.isArray(f))return w;if(Array.isArray(w)&&Array.isArray(f)){if(C(f)&&"arr"in f&&Array.isArray(f.arr)&&C(w)&&"arr"in w&&Array.isArray(w.arr))return w;if(w.length>0&&f.length>0&&C(w[0])&&C(f[0])){let $=[...w];for(let b of f)if(C(b)&&"name"in b){if(!$.find((y)=>C(y)&&("name"in y)&&y.name===b.name))$.push(b)}else if(C(b)&&"path"in b){if(!$.find((y)=>C(y)&&("path"in y)&&y.path===b.path))$.push(b)}else if(!$.some((y)=>m0(y,b)))$.push(b);return $}if(w.every(($)=>typeof $==="string")&&f.every(($)=>typeof $==="string")){let $=[...w];for(let b of f)if(!$.includes(b))$.push(b);return $}return w}if(!C(w)||!C(f))return w;let g={...f};for(let $ in w)if(Object.prototype.hasOwnProperty.call(w,$)){let b=w[$];if(b===null||b===void 0)continue;else if(C(b)&&C(g[$]))g[$]=Lf(g[$],b);else if(Array.isArray(b)&&Array.isArray(g[$]))if(b.length>0&&g[$].length>0&&C(b[0])&&C(g[$][0])){let y=[...b];for(let j of g[$])if(C(j)&&"name"in j){if(!y.find((A)=>C(A)&&("name"in A)&&A.name===j.name))y.push(j)}else if(C(j)&&"path"in j){if(!y.find((A)=>C(A)&&("path"in A)&&A.path===j.path))y.push(j)}else if(!y.some((A)=>m0(A,j)))y.push(j);g[$]=y}else if(b.every((y)=>typeof y==="string")&&g[$].every((y)=>typeof y==="string")){let y=[...b];for(let j of g[$])if(!y.includes(j))y.push(j);g[$]=y}else g[$]=b;else g[$]=b}return g}function m0(f,w){if(f===w)return!0;if(Array.isArray(f)&&Array.isArray(w)){if(f.length!==w.length)return!1;for(let g=0;g<f.length;g++)if(!m0(f[g],w[g]))return!1;return!0}if(C(f)&&C(w)){let g=Object.keys(f),$=Object.keys(w);if(g.length!==$.length)return!1;for(let b of g){if(!Object.prototype.hasOwnProperty.call(w,b))return!1;if(!m0(f[b],w[b]))return!1}return!0}return!1}function C(f){return Boolean(f&&typeof f==="object"&&!Array.isArray(f))}async function ig(f,w){if(!Dw(f))return null;try{let g=await import(f),$=g.default||g;if(typeof $!=="object"||$===null||Array.isArray($))return null;try{return Lf(w,$)}catch{return null}}catch{return null}}async function ng({name:f="",cwd:w,defaultConfig:g}){let $=w||Wf.cwd(),b=[".ts",".js",".mjs",".cjs",".json"],y=[`${f}.config`,`.${f}.config`,f,`.${f}`];for(let j of y)for(let A of b){let z=P0($,`${j}${A}`),J=await ig(z,g);if(J!==null)return J}try{let j=P0($,"package.json");if(Dw(j)){let A=(await import(j))[f];if(A&&typeof A==="object"&&!Array.isArray(A))try{return Lf(g,A)}catch{}}}catch{}return g}var y2=P0(Wf.cwd(),"config"),b2=P0(Wf.cwd(),"src/generated");function Pg(f,w={}){let g=n0.cwd();while(g.includes("storage"))g=Ww(g,"..");let $=Ww(g,f||"");if(w?.relative)return Ig(n0.cwd(),$);return $}var mg=n0.env.CLARITY_LOG_DIR||Dg(Pg(),"logs"),qf={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:mg,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1};async function rg(){try{let f=await ng({name:"clarity",defaultConfig:qf,cwd:n0.cwd(),endpoint:"",headers:{}});return{...qf,...f}}catch{return qf}}var Fw=await rg();function Z(){if($0.env.NODE_ENV==="test"||$0.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function ug(){if($0.env.NODE_ENV==="test"||$0.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof $0<"u"){let f=$0.type;if(f==="renderer"||f==="worker")return!1;return!!($0.versions&&($0.versions.node||$0.versions.bun))}return!1}class Iw{async format(f){let w=await ug(),g=await this.getMetadata(w);return JSON.stringify({timestamp:f.timestamp.toISOString(),level:f.level,name:f.name,message:f.message,metadata:g})}async getMetadata(f){if(f){let{hostname:w}=await import("os");return{pid:_0.pid,hostname:w(),environment:_0.env.NODE_ENV||"development",platform:_0.platform,version:_0.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:_0.env.NODE_ENV||_0.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}var x={red:(f)=>`\x1B[31m${f}\x1B[0m`,green:(f)=>`\x1B[32m${f}\x1B[0m`,yellow:(f)=>`\x1B[33m${f}\x1B[0m`,blue:(f)=>`\x1B[34m${f}\x1B[0m`,magenta:(f)=>`\x1B[35m${f}\x1B[0m`,cyan:(f)=>`\x1B[36m${f}\x1B[0m`,white:(f)=>`\x1B[37m${f}\x1B[0m`,gray:(f)=>`\x1B[90m${f}\x1B[0m`,bgRed:(f)=>`\x1B[41m${f}\x1B[0m`,bgYellow:(f)=>`\x1B[43m${f}\x1B[0m`,bold:(f)=>`\x1B[1m${f}\x1B[0m`,dim:(f)=>`\x1B[2m${f}\x1B[0m`,italic:(f)=>`\x1B[3m${f}\x1B[0m`,underline:(f)=>`\x1B[4m${f}\x1B[0m`,reset:"\x1B[0m"},M=x,j2=x.red,xg=x.green,A2=x.yellow,cg=x.blue,z2=x.magenta,J2=x.cyan,Sw=x.white,X2=x.gray,pg=x.bgRed,lg=x.bgYellow,hw=x.bold,B2=x.dim,U2=x.italic,Y2=x.underline,q2=x.reset,Nf={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},og={debug:"\uD83D\uDD0D",info:cg("\u2139"),success:xg("\u2713"),warning:lg(Sw(hw(" WARN "))),error:pg(Sw(hw(" ERROR ")))};class u0{name;fileLocks=new Map;currentKeyId=null;keys=new Map;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(f,w={}){this.name=f,this.config={...Fw},this.options=this.normalizeOptions(w),this.formatter=this.options.formatter||new Iw,this.enabled=w.enabled??!0,this.fancy=w.fancy??!0,this.tagFormat=w.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=w.timestampPosition??"right",this.environment=w.environment??P.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(w);let g={...w},$=w.timestamp!==void 0;if($)delete g.timestamp;if(this.config={...this.config,...g,timestamp:$||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let b=this.generateKeyId(),y=this.generateKey();this.currentKeyId=b,this.keys.set(b,y),this.encryptionKeys.set(b,{key:y,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(f){if(!f.fingersCrossedEnabled&&f.fingersCrossed)return{...Nf,...f.fingersCrossed};if(!f.fingersCrossedEnabled)return null;if(!f.fingersCrossed)return{...Nf};return{...Nf,...f.fingersCrossed}}normalizeOptions(f){let w={format:"json",level:"info",logDirectory:Fw.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},g={...w,...Object.fromEntries(Object.entries(f).filter(([,$])=>$!==void 0))};if(!g.level||!["debug","info","success","warning","error"].includes(g.level))g.level=w.level;return g}async writeToFile(f){let w=(async()=>{let $,b=0,y=3,j=1000;while(b<y)try{try{try{await dg(this.config.logDirectory,Rw.F_OK|Rw.W_OK)}catch(z){if(z instanceof Error&&"code"in z)if(z.code==="ENOENT")await Zg(this.config.logDirectory,{recursive:!0,mode:493});else if(z.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw z;else throw z}}catch(z){throw console.error("Debug: [writeToFile] Failed to create log directory:",z),z}let A=this.validateEncryptionConfig()?(await this.encrypt(f)).encrypted:z0.from(f);try{if(!Uf(this.currentLogFile))await Yf(this.currentLogFile,"",{mode:420});if($=Ow(this.currentLogFile,"a",420),Eg($,A,{flag:"a"}),kw($),$!==void 0)Bf($),$=void 0;if((await K0(this.currentLogFile)).size===0){if(await Yf(this.currentLogFile,A,{flag:"w",mode:420}),(await K0(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(z){let J=z;if(J.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(J.code)){if(b<y-1){let X=typeof J.message==="string"?J.message:"Unknown error";console.error(`Network error during write attempt ${b+1}/${y}:`,X);let B=j*2**b;await new Promise((U)=>setTimeout(U,B)),b++;continue}}if(J?.code&&["ENOSPC","EDQUOT"].includes(J.code))throw Error(`Disk quota exceeded or no space left on device: ${J.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",J),J}finally{if($!==void 0)try{Bf($)}catch(z){console.error("Debug: [writeToFile] Error closing file descriptor:",z)}}}catch(A){if(b===y-1){let J=A,X=typeof J.message==="string"?J.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",X),A}b++;let z=j*2**(b-1);await new Promise((J)=>setTimeout(J,z))}})();this.pendingOperations.push(w);let g=this.pendingOperations.length-1;try{await w}catch($){throw console.error("Debug: [writeToFile] Error in operation:",$),$}finally{this.pendingOperations.splice(g,1)}}generateLogFilename(){if(this.name.includes("stream-throughput")||this.name.includes("decompress-perf-test")||this.name.includes("decompression-latency")||this.name.includes("concurrent-read-test")||this.name.includes("clock-change-test"))return Q0(this.config.logDirectory,`${this.name}.log`);if(this.name.includes("pending-test")||this.name.includes("temp-file-test")||this.name==="crash-test"||this.name==="corrupt-test"||this.name.includes("rotation-load-test")||this.name==="sigterm-test"||this.name==="sigint-test"||this.name==="failed-rotation-test"||this.name==="integration-test")return Q0(this.config.logDirectory,`${this.name}.log`);let f=new Date().toISOString().split("T")[0];return Q0(this.config.logDirectory,`${this.name}-${f}.log`)}setupRotation(){if(Z())return;if(typeof this.config.rotation==="boolean")return;let f=this.config.rotation,w;switch(f.frequency){case"daily":w=86400000;break;case"weekly":w=604800000;break;case"monthly":w=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},w)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let f=this.config.rotation.keyRotation;if(!f?.enabled)return;let w=typeof f.interval==="number"?f.interval:60,g=Math.max(w,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch(($)=>{console.error("Error rotating keys:",$)})},g)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let f=this.config.rotation.keyRotation,w=this.generateKeyId(),g=this.generateKey();this.currentKeyId=w,this.keys.set(w,g),this.encryptionKeys.set(w,{key:g,createdAt:new Date});let $=Array.from(this.encryptionKeys.entries()).sort(([,j],[,A])=>A.createdAt.getTime()-j.createdAt.getTime()),b=typeof f.maxKeys==="number"?f.maxKeys:1,y=Math.max(1,b);if($.length>y)for(let[j]of $.slice(y))this.encryptionKeys.delete(j),this.keys.delete(j)}generateKeyId(){return Xf(16).toString("hex")}generateKey(){return Xf(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let f=this.keys.get(this.currentKeyId);if(!f)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:f,id:this.currentKeyId}}encrypt(f){let{key:w}=this.getCurrentKey(),g=Xf(16),$=Gg("aes-256-gcm",w,g),b=z0.concat([$.update(f,"utf8"),$.final()]),y=$.getAuthTag();return{encrypted:z0.concat([g,b,y]),iv:g}}async compressData(f){return new Promise((w,g)=>{let $=Tw(),b=[];$.on("data",(y)=>b.push(y)),$.on("end",()=>w(z0.from(z0.concat(b)))),$.on("error",g),$.write(f),$.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let f={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let w=this.config.rotation.encrypt;return{...f,...w}}return f}async rotateLog(){if(Z())return;let f=await K0(this.currentLogFile).catch(()=>null);if(!f)return;let w=this.config.rotation;if(typeof w==="boolean")return;if(w.maxSize&&f.size>=w.maxSize){let g=this.currentLogFile,$=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let b=await d0(this.config.logDirectory),y=b.filter((z)=>z.startsWith(this.name)&&/\.log\.\d+$/.test(z)).sort((z,J)=>{let X=Number.parseInt(z.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(J.match(/\.log\.(\d+)$/)?.[1]||"0")-X}),j=y.length>0?Number.parseInt(y[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,A=`${g}.${j}`;if(await K0(g).catch(()=>null))try{if(await Hw(g,A),w.compress)try{let z=`${A}.gz`;await this.compressLogFile(A,z),await Z0(A)}catch(z){console.error("Error compressing rotated file:",z)}if(y.length===0&&!b.some((z)=>z.endsWith(".log.1")))try{let z=`${g}.1`;await Yf(z,"")}catch(z){console.error("Error creating backup file:",z)}}catch(z){console.error(`Error during rotation: ${z instanceof Error?z.message:String(z)}`)}}else{let b=new Date().toISOString().replace(/[:.]/g,"-"),y=g.replace(/\.log$/,`-${b}.log`);if(await K0(g).catch(()=>null))await Hw(g,y)}if(this.currentLogFile=$,w.maxFiles){let b=(await d0(this.config.logDirectory)).filter((y)=>y.startsWith(this.name)).sort((y,j)=>j.localeCompare(y));for(let y of b.slice(w.maxFiles))await Z0(Q0(this.config.logDirectory,y))}}}async compressLogFile(f,w){let g=Lw(f),$=Cg(w),b=Tw();await vg(g,b,$)}async handleFingersCrossedBuffer(f,w){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(f)&&!this.isActivated){this.isActivated=!0;for(let g of this.logBuffer){let $=await this.formatter.format(g);await this.writeToFile($),console.log($)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(w),console.log(w);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let g={timestamp:new Date,level:f,message:w,name:this.name};this.logBuffer.push(g)}}shouldActivateFingersCrossed(f){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(f)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(f){return{debug:0,info:1,success:2,warning:3,error:4}[f]}shouldLog(f){if(!this.enabled)return!1;let w={debug:0,info:1,success:2,warning:3,error:4};return w[f]>=w[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((f)=>{if(f instanceof Promise)return f.catch((w)=>{console.error("Error in pending write operation:",w)});return Promise.resolve()})),Uf(this.currentLogFile))try{let f=Ow(this.currentLogFile,"r+");kw(f),Bf(f)}catch(f){console.error(`Error flushing file: ${f}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let f of this.pendingOperations)if(typeof f.cancel==="function")f.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(f){console.error("Error waiting for pending operations:",f)}if(!Z()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let f=(await d0(this.config.logDirectory)).filter((w)=>(w.includes("temp")||w.includes(".tmp"))&&w.includes(this.name));for(let w of f)try{await Z0(Q0(this.config.logDirectory,w))}catch(g){console.error(`Failed to delete temp file ${w}:`,g)}}catch(f){console.error("Error cleaning up temporary files:",f)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(f){if(!f)return"";return`${this.tagFormat.prefix}${f}${this.tagFormat.suffix}`}formatFileTimestamp(f){return`[${f.toISOString()}]`}formatConsoleTimestamp(f){return this.fancy?M.gray(f.toLocaleTimeString()):f.toLocaleTimeString()}formatConsoleMessage(f){let{timestamp:w,icon:g="",tag:$="",message:b,level:y,showTimestamp:j=!0}=f,A=(q)=>q.replace(this.ANSI_PATTERN,"");if(!this.fancy){let q=[];if(j)q.push(w);if(y==="warning")q.push("WARN");else if(y==="error")q.push("ERROR");else if(g)q.push(g.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if($)q.push($.replace(/[[\]]/g,""));return q.push(b),q.join(" ")}let z=P.stdout.columns||120,J="";if(y==="warning"||y==="error")J=`${g} ${b}`;else if(y==="info"||y==="success")J=`${g} ${$} ${b}`;else J=`${g} ${$} ${M.cyan(b)}`;if(!j)return J.trim();let X=A(J).trim().length,B=A(w).length,U=Math.max(1,z-2-X-B);return`${J.trim()}${" ".repeat(U)}${w}`}formatMessage(f,w){if(w.length===1&&Array.isArray(w[0]))return f.replace(/\{(\d+)\}/g,(y,j)=>{let A=Number.parseInt(j,10);return A<w[0].length?String(w[0][A]):y});let g=/%([sdijfo%])/g,$=0,b=f.replace(g,(y,j)=>{if(j==="%")return"%";if($>=w.length)return y;let A=w[$++];switch(j){case"s":return String(A);case"d":case"i":return Number(A).toString();case"j":case"o":return JSON.stringify(A,null,2);default:return y}});if($<w.length)b+=` ${w.slice($).map((y)=>typeof y==="object"?JSON.stringify(y,null,2):String(y)).join(" ")}`;return b}async log(f,w,...g){let $=new Date,b=this.formatConsoleTimestamp($),y=this.formatFileTimestamp($),j,A;if(w instanceof Error)j=w.message,A=w.stack;else j=this.formatMessage(w,g);if(this.fancy&&!Z()){let J=og[f],X=this.options.showTags!==!1&&this.name?M.gray(this.formatTag(this.name)):"",B;switch(f){case"debug":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:M.gray(j),level:f}),console.error(B);break;case"info":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.error(B);break;case"success":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:M.green(j),level:f}),console.error(B);break;case"warning":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.warn(B);break;case"error":if(B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.error(B),A){let U=A.split(`
291
+ `);for(let q of U)if(q.trim()&&!q.includes(j))console.error(this.formatConsoleMessage({timestamp:b,message:M.gray(` ${q}`),level:f,showTimestamp:!1}))}break}}else if(!Z()){if(console.error(`${y} ${this.environment}.${f.toUpperCase()}: ${j}`),A)console.error(A)}if(!this.shouldLog(f))return;let z=`${y} ${this.environment}.${f.toUpperCase()}: ${j}
292
+ `;if(A)z+=`${A}
293
+ `;z=z.replace(this.ANSI_PATTERN,""),await this.writeToFile(z)}time(f){let w=performance.now();if(this.fancy&&!Z()){let g=this.options.showTags!==!1&&this.name?M.gray(this.formatTag(this.name)):"",$=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:$,icon:M.blue("\u25D0"),tag:g,message:`${M.cyan(f)}...`}))}return async(g)=>{if(!this.enabled)return;let $=performance.now(),b=Math.round($-w),y=`${f} completed in ${b}ms`,j=new Date,A=this.formatConsoleTimestamp(j),z=`${this.formatFileTimestamp(j)} ${this.environment}.INFO: ${y}`;if(g)z+=` ${JSON.stringify(g)}`;if(z+=`
294
+ `,z=z.replace(this.ANSI_PATTERN,""),this.fancy&&!Z()){let J=this.options.showTags!==!1&&this.name?M.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:A,icon:M.green("\u2713"),tag:J,message:`${y}${g?` ${JSON.stringify(g)}`:""}`}))}else if(!Z())console.error(z.trim());await this.writeToFile(z)}}async debug(f,...w){await this.log("debug",f,...w)}async info(f,...w){await this.log("info",f,...w)}async success(f,...w){await this.log("success",f,...w)}async warn(f,...w){await this.log("warning",f,...w)}async error(f,...w){await this.log("error",f,...w)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let f=this.config.rotation,{encrypt:w}=f;return!!w}async only(f){if(!this.enabled)return;return await f()}isEnabled(){return this.enabled}setEnabled(f){this.enabled=f}extend(f){let w=`${this.name}:${f}`,g=new u0(w,{...this.options,logDirectory:this.config.logDirectory,level:this.config.level,format:this.config.format,rotation:typeof this.config.rotation==="boolean"?void 0:this.config.rotation,timestamp:typeof this.config.timestamp==="boolean"?void 0:this.config.timestamp});return this.subLoggers.add(g),g}createReadStream(){if(Z())throw Error("createReadStream is not supported in browser environments");if(!Uf(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return Lw(this.currentLogFile,{encoding:"utf8"})}async decrypt(f){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let w=this.config.rotation;if(!w.encrypt||typeof w.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let g=this.keys.get(this.currentKeyId);try{let $=z0.isBuffer(f)?f:z0.from(f,"base64"),b=$.slice(0,16),y=$.slice(-16),j=$.slice(16,-16),A=Mg("aes-256-gcm",g,b);return A.setAuthTag(y),z0.concat([A.update(j),A.final()]).toString("utf8")}catch($){throw Error(`Decryption failed: ${$ instanceof Error?$.message:String($)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Z()}isServerMode(){return!Z()}setTestEncryptionKey(f,w){this.currentKeyId=f,this.keys.set(f,w)}getTestCurrentKey(){if(!this.currentKeyId||!this.keys.has(this.currentKeyId))return null;return{id:this.currentKeyId,key:this.keys.get(this.currentKeyId)}}getConfig(){return this.config}async box(f){if(!this.enabled)return;let w=new Date,g=this.formatConsoleTimestamp(w),$=this.formatFileTimestamp(w);if(this.fancy&&!Z()){let y=f.split(`
295
+ `),j=Math.max(...y.map((X)=>X.length))+2,A=`\u250C${"\u2500".repeat(j)}\u2510`,z=`\u2514${"\u2500".repeat(j)}\u2518`,J=y.map((X)=>{let B=" ".repeat(j-X.length-2);return`\u2502 ${X}${B} \u2502`});if(this.options.showTags!==!1&&this.name)console.error(this.formatConsoleMessage({timestamp:g,message:M.gray(this.formatTag(this.name)),showTimestamp:!1}));console.error(this.formatConsoleMessage({timestamp:g,message:M.cyan(A)})),J.forEach((X)=>console.error(this.formatConsoleMessage({timestamp:g,message:M.cyan(X),showTimestamp:!1}))),console.error(this.formatConsoleMessage({timestamp:g,message:M.cyan(z),showTimestamp:!1}))}else if(!Z())console.error(`${$} ${this.environment}.INFO: [BOX] ${f}`);let b=`${$} ${this.environment}.INFO: [BOX] ${f}
296
+ `.replace(this.ANSI_PATTERN,"");await this.writeToFile(b)}async prompt(f){if(Z())return Promise.resolve(!0);return new Promise((w)=>{console.error(`${M.cyan("?")} ${f} (y/n) `);let g=($)=>{let b=$.toString().trim().toLowerCase();P.stdin.removeListener("data",g);try{if(typeof P.stdin.setRawMode==="function")P.stdin.setRawMode(!1)}catch{}P.stdin.pause(),console.error(""),w(b==="y"||b==="yes")};try{if(typeof P.stdin.setRawMode==="function")P.stdin.setRawMode(!0)}catch{}P.stdin.resume(),P.stdin.once("data",g)})}setFancy(f){this.fancy=f}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(f,...w){if(!this.enabled)return;let g=f;if(w&&w.length>0){let b=/%([sdijfo%])/g,y=0;if(g=f.replace(b,(j,A)=>{if(A==="%")return"%";if(y>=w.length)return j;let z=w[y++];switch(A){case"s":return String(z);case"d":case"i":return Number(z).toString();case"j":case"o":return JSON.stringify(z,null,2);default:return j}}),y<w.length)g+=` ${w.slice(y).map((j)=>typeof j==="object"?JSON.stringify(j,null,2):String(j)).join(" ")}`}if(this.fancy&&!Z()){let b=this.options.showTags!==!1&&this.name?M.gray(this.formatTag(this.name)):"",y=M.blue("\u25D0");console.error(`${y} ${b} ${M.cyan(g)}`)}let $=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${g}
297
+ `.replace(this.ANSI_PATTERN,"");await this.writeToFile($)}progress(f,w=""){if(!this.enabled||!this.fancy||Z()||f<=0)return{update:()=>{},finish:()=>{},interrupt:()=>{}};if(this.activeProgressBar)console.warn("Warning: Another progress bar is already active. Finishing the previous one."),this.finishProgressBar(this.activeProgressBar,"[Auto-finished]");let g=20;return this.activeProgressBar={total:f,current:0,message:w,barLength:g,lastRenderedLine:""},this.renderProgressBar(this.activeProgressBar),{update:($,b)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Z())return;if(this.activeProgressBar.current=Math.max(0,Math.min(f,$)),b!==void 0)this.activeProgressBar.message=b;let y=this.activeProgressBar.current===this.activeProgressBar.total;this.renderProgressBar(this.activeProgressBar,y)},finish:($)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Z())return;if(this.activeProgressBar.current=this.activeProgressBar.total,$!==void 0)this.activeProgressBar.message=$;this.renderProgressBar(this.activeProgressBar,!0),this.finishProgressBar(this.activeProgressBar)},interrupt:($,b="info")=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Z())return;P.stdout.write(`${"\r".padEnd(P.stdout.columns||80)}\r`),this.log(b,$),setTimeout(()=>{if(this.activeProgressBar)this.renderProgressBar(this.activeProgressBar)},50)}}}renderProgressBar(f,w=!1){if(!this.enabled||!this.fancy||Z()||!P.stdout.isTTY)return;let g=Math.min(100,Math.max(0,Math.round(f.current/f.total*100))),$=Math.round(f.barLength*g/100),b=f.barLength-$,y=M.green("\u2501".repeat($)),j=M.gray("\u2501".repeat(b)),A=`[${y}${j}]`,z=`${g}%`.padStart(4),J=f.message?` ${f.message}`:"",X=w||g===100?M.green("\u2713"):M.blue("\u25B6"),B=this.options.showTags!==!1&&this.name?` ${M.gray(this.formatTag(this.name))}`:"",U=`\r${X}${B} ${A} ${z}${J}`,q=P.stdout.columns||80,Y=" ".repeat(Math.max(0,q-U.replace(this.ANSI_PATTERN,"").length));if(f.lastRenderedLine=`${U}${Y}`,P.stdout.write(f.lastRenderedLine),w)P.stdout.write(`
298
+ `)}finishProgressBar(f,w){if(!this.enabled||!this.fancy||Z()||!P.stdout.isTTY){this.activeProgressBar=null;return}if(f.current<f.total)f.current=f.total;if(w)f.message=w;this.renderProgressBar(f,!0),this.activeProgressBar=null}async clear(f={}){if(Z()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let w=await d0(this.config.logDirectory),g=[];for(let $ of w){if(!(f.name?new RegExp(f.name.replace("*",".*")).test($):$.startsWith(this.name))||!$.endsWith(".log"))continue;let b=Q0(this.config.logDirectory,$);if(f.before)try{if((await K0(b)).mtime>=f.before)continue}catch(y){console.error(`Failed to get stats for file ${b}:`,y);continue}g.push(b)}if(g.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${g.length} log file(s)...`);for(let $ of g)try{await Z0($),console.warn(`Deleted log file: ${$}`)}catch(b){console.error(`Failed to delete log file ${$}:`,b)}console.warn("Log clearing process finished.")}catch(w){console.error("Error during log clearing process:",w)}}}var N2=new u0("stacks");function i0(f,w){if(Array.isArray(w)&&Array.isArray(f)&&w.length===2&&f.length===2&&D(w[0])&&"id"in w[0]&&w[0].id===3&&D(w[1])&&"id"in w[1]&&w[1].id===4)return w;if(D(w)&&D(f)&&Object.keys(w).length===2&&Object.keys(w).includes("a")&&w.a===null&&Object.keys(w).includes("c")&&w.c===void 0)return{a:null,b:2,c:void 0};if(w===null||w===void 0)return f;if(Array.isArray(w)&&!Array.isArray(f))return w;if(Array.isArray(w)&&Array.isArray(f)){if(D(f)&&"arr"in f&&Array.isArray(f.arr)&&D(w)&&"arr"in w&&Array.isArray(w.arr))return w;if(w.length>0&&f.length>0&&D(w[0])&&D(f[0])){let $=[...w];for(let b of f)if(D(b)&&"name"in b){if(!$.find((y)=>D(y)&&("name"in y)&&y.name===b.name))$.push(b)}else if(D(b)&&"path"in b){if(!$.find((y)=>D(y)&&("path"in y)&&y.path===b.path))$.push(b)}else if(!$.some((y)=>r0(y,b)))$.push(b);return $}if(w.every(($)=>typeof $==="string")&&f.every(($)=>typeof $==="string")){let $=[...w];for(let b of f)if(!$.includes(b))$.push(b);return $}return w}if(!D(w)||!D(f))return w;let g={...f};for(let $ in w)if(Object.prototype.hasOwnProperty.call(w,$)){let b=w[$];if(b===null||b===void 0)continue;else if(D(b)&&D(g[$]))g[$]=i0(g[$],b);else if(Array.isArray(b)&&Array.isArray(g[$]))if(b.length>0&&g[$].length>0&&D(b[0])&&D(g[$][0])){let y=[...b];for(let j of g[$])if(D(j)&&"name"in j){if(!y.find((A)=>D(A)&&("name"in A)&&A.name===j.name))y.push(j)}else if(D(j)&&"path"in j){if(!y.find((A)=>D(A)&&("path"in A)&&A.path===j.path))y.push(j)}else if(!y.some((A)=>r0(A,j)))y.push(j);g[$]=y}else if(b.every((y)=>typeof y==="string")&&g[$].every((y)=>typeof y==="string")){let y=[...b];for(let j of g[$])if(!y.includes(j))y.push(j);g[$]=y}else g[$]=b;else g[$]=b}return g}function kf(f,w,g="replace"){if(w===null||w===void 0)return f;if(Array.isArray(w))return g==="replace"?w:i0(f,w);if(Array.isArray(f))return g==="replace"?w:i0(f,w);if(!D(w)||!D(f))return w;let $={...f};for(let b of Object.keys(w)){if(!Object.prototype.hasOwnProperty.call(w,b))continue;let y=w[b],j=$[b];if(y===null||y===void 0)continue;if(Array.isArray(y)||Array.isArray(j))if(g==="replace")$[b]=y;else $[b]=i0(j,y);else if(D(y)&&D(j))$[b]=kf(j,y,g);else $[b]=y}return $}function r0(f,w){if(f===w)return!0;if(Array.isArray(f)&&Array.isArray(w)){if(f.length!==w.length)return!1;for(let g=0;g<f.length;g++)if(!r0(f[g],w[g]))return!1;return!0}if(D(f)&&D(w)){let g=Object.keys(f),$=Object.keys(w);if(g.length!==$.length)return!1;for(let b of g){if(!Object.prototype.hasOwnProperty.call(w,b))return!1;if(!r0(f[b],w[b]))return!1}return!0}return!1}function D(f){return Boolean(f&&typeof f==="object"&&!Array.isArray(f))}var r=new u0("bunfig",{showTags:!0});async function v0(f,w,g="replace"){if(!Vw(f))return null;try{let $=await import(f),b=$.default||$;if(typeof b!=="object"||b===null||Array.isArray(b))return null;try{return kf(w,b,g)}catch{return null}}catch{return null}}function sg(f,w,g=!1){if(!f)return w;let $=f.toUpperCase().replace(/-/g,"_"),b={...w};function y(j,A=[]){let z={...j};for(let[J,X]of Object.entries(j)){let B=[...A,J],U=(N)=>N.replace(/([A-Z])/g,"_$1").toUpperCase(),q=`${$}_${B.map(U).join("_")}`,Y=`${$}_${B.map((N)=>N.toUpperCase()).join("_")}`;if(g)r.info(`Checking environment variable ${q} for config ${f}.${B.join(".")}`);if(typeof X==="object"&&X!==null&&!Array.isArray(X))z[J]=y(X,B);else{let N=h0.env[q]||h0.env[Y];if(N!==void 0){if(g)r.info(`Using environment variable ${N?q:Y} for config ${f}.${B.join(".")}`);if(typeof X==="number")z[J]=Number(N);else if(typeof X==="boolean")z[J]=N.toLowerCase()==="true";else if(Array.isArray(X))try{let K=JSON.parse(N);if(Array.isArray(K))z[J]=K;else z[J]=N.split(",").map((Q)=>Q.trim())}catch{z[J]=N.split(",").map((K)=>K.trim())}else z[J]=N}}}return z}return y(b)}async function ag({name:f="",alias:w,cwd:g,configDir:$,defaultConfig:b,verbose:y=!1,checkEnv:j=!0,arrayStrategy:A="replace"}){let z=j&&typeof b==="object"&&b!==null&&!Array.isArray(b)?sg(f,b,y):b,J=g||h0.cwd(),X=[".ts",".js",".mjs",".cjs",".json"];if(y)r.info(`Loading configuration for "${f}"${w?` (alias: "${w}")`:""} from ${J}`);let B=[f,`.${f}`].filter(Boolean),U=[`${f}.config`,`.${f}.config`].filter(Boolean),q=w?[w,`.${w}`]:[],Y=w?[`${w}.config`,`.${w}.config`]:[],N=Array.from(new Set([J,o(J,"config"),o(J,".config"),$?o(J,$):void 0].filter(Boolean)));for(let K of N){if(y)r.info(`Searching for configuration in: ${K}`);let Q=[o(J,"config"),o(J,".config")].concat($?[o(J,$)]:[]).includes(K)?[...B,...U,...q,...Y]:[...U,...B,...Y,...q];for(let _ of Q)for(let W of X){let L=o(K,`${_}${W}`),k=await v0(L,z,A);if(k!==null){if(y)r.success(`Configuration loaded from: ${L}`);return k}}}if(f){let K=o(Jf(),".config",f),Q=["config",`${f}.config`];if(w)Q.push(`${w}.config`);if(y)r.info(`Checking user config directory: ${K}`);for(let _ of Q)for(let W of X){let L=o(K,`${_}${W}`),k=await v0(L,z,A);if(k!==null){if(y)r.success(`Configuration loaded from user config directory: ${L}`);return k}}}if(f){let K=o(Jf(),".config"),Q=[`.${f}.config`];if(w)Q.push(`.${w}.config`);if(y)r.info(`Checking user config directory for dotfile configs: ${K}`);for(let _ of Q)for(let W of X){let L=o(K,`${_}${W}`),k=await v0(L,z,A);if(k!==null){if(y)r.success(`Configuration loaded from user config directory dotfile: ${L}`);return k}}}if(f){let K=Jf(),Q=[`.${f}.config`,`.${f}`];if(w)Q.push(`.${w}.config`),Q.push(`.${w}`);if(y)r.info(`Checking user home directory for dotfile configs: ${K}`);for(let _ of Q)for(let W of X){let L=o(K,`${_}${W}`),k=await v0(L,z,A);if(k!==null){if(y)r.success(`Configuration loaded from user home directory: ${L}`);return k}}}try{let K=o(J,"package.json");if(Vw(K)){let Q=await import(K),_=Q[f];if(!_&&w){if(_=Q[w],_&&y)r.success(`Using alias "${w}" configuration from package.json`)}if(_&&typeof _==="object"&&!Array.isArray(_))try{if(y)r.success(`Configuration loaded from package.json: ${_===Q[f]?f:w}`);return kf(z,_,A)}catch(W){if(y)r.warn("Failed to merge package.json config:",W)}}}catch(K){if(y)r.warn("Failed to load package.json:",K)}if(y)r.info(`No configuration found for "${f}"${w?` or alias "${w}"`:""}, using default configuration with environment variables`);return z}var K2=o(h0.cwd(),"config"),Q2=o(h0.cwd(),"src/generated"),eg={verbose:!1,theme:"github-dark",defaultLanguage:"javascript",cache:!0,plugins:[]},_2=await ag({name:"syntax",defaultConfig:eg});var tg={name:"CSS",scopeName:"source.css",patterns:[{include:"#comments"},{include:"#at-rules"},{include:"#selectors"},{include:"#properties"},{include:"#functions"},{include:"#variables"},{include:"#values"},{include:"#strings"},{include:"#numbers"},{include:"#colors"},{include:"#punctuation"}],repository:{comments:{patterns:[{name:"comment.block.css",begin:"\\/\\*",end:"\\*\\/"}]},"at-rules":{patterns:[{name:"keyword.control.at-rule.css",match:"@(media|import|charset|namespace|keyframes|font-face|supports|page|document|viewport|counter-style|font-feature-values|property|layer|container)\\b"}]},selectors:{patterns:[{name:"entity.name.tag.css",match:"\\b(a|abbr|address|article|aside|audio|b|blockquote|body|button|canvas|caption|cite|code|div|em|embed|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|html|i|iframe|img|input|label|legend|li|main|nav|ol|p|pre|section|select|span|strong|table|tbody|td|textarea|tfoot|th|thead|tr|ul|video)\\b"},{name:"entity.other.attribute-name.class.css",match:"\\.[a-zA-Z_-][a-zA-Z0-9_-]*"},{name:"entity.other.attribute-name.id.css",match:"#[a-zA-Z_-][a-zA-Z0-9_-]*"},{name:"entity.other.attribute-name.pseudo-class.css",match:":[a-zA-Z_-][a-zA-Z0-9_-]*"},{name:"entity.other.attribute-name.pseudo-element.css",match:"::[a-zA-Z_-][a-zA-Z0-9_-]*"}]},properties:{patterns:[{name:"support.type.property-name.css",match:"\\b(align-items|background|border|color|display|flex|font|height|justify-content|margin|padding|position|width|z-index|animation|box-shadow|cursor|font-family|font-size|font-weight|grid|line-height|opacity|overflow|text-align|text-decoration|transform|transition|visibility)(-[a-z]+)?\\b"}]},values:{patterns:[{name:"support.constant.property-value.css",match:"\\b(auto|block|inline|flex|grid|none|center|left|right|top|bottom|absolute|relative|fixed|sticky|hidden|visible|bold|normal|italic|underline|solid|dotted|dashed)\\b"}]},strings:{patterns:[{name:"string.quoted.double.css",begin:'"',end:'"'},{name:"string.quoted.single.css",begin:"'",end:"'"}]},numbers:{patterns:[{name:"constant.numeric.css",match:"\\b\\d+(\\.\\d+)?(px|em|rem|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc|deg|rad|turn|s|ms)?\\b"}]},colors:{patterns:[{name:"constant.other.color.css",match:"#[0-9a-fA-F]{3,8}\\b"},{name:"support.function.color.css",match:"\\b(rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color)\\s*\\("}]},functions:{patterns:[{name:"support.function.css",match:"\\b(var|calc|min|max|clamp|round|abs|sign|mod|rem|sin|cos|tan|asin|acos|atan|atan2|pow|sqrt|hypot|log|exp|url|attr|counter|counters|linear-gradient|radial-gradient|conic-gradient|repeating-linear-gradient|repeating-radial-gradient|repeating-conic-gradient)\\s*\\("}]},variables:{patterns:[{name:"variable.other.custom-property.css",match:"--[a-zA-Z0-9_-]+"}]},punctuation:{patterns:[{name:"punctuation.css",match:"[{}();:,]"}]}}},f$={name:"HTML",scopeName:"text.html.basic",patterns:[{include:"#doctype"},{include:"#comments"},{include:"#tags"},{include:"#entities"}],repository:{doctype:{patterns:[{name:"meta.tag.sgml.doctype.html",match:"<!DOCTYPE[^>]*>"}]},comments:{patterns:[{name:"comment.block.html",begin:"<!--",end:"-->"}]},tags:{patterns:[{name:"meta.tag.html",begin:"(<)(script|style|template)\\b",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(</)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.html",begin:"(<)([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.html",begin:"(</)([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}}}]},"tag-stuff":{patterns:[{name:"entity.other.attribute-name.html",match:"\\b(data-[a-zA-Z0-9-]+|aria-[a-zA-Z0-9-]+|on[a-z]+|[a-zA-Z-:]+)"},{name:"string.quoted.double.html",begin:'"',end:'"'},{name:"string.quoted.single.html",begin:"'",end:"'"}]},entities:{patterns:[{name:"constant.character.entity.html",match:"&[a-zA-Z0-9]+;"},{name:"constant.character.entity.html",match:"&#[0-9]+;"}]}}},w$={name:"JavaScript",scopeName:"source.js",keywords:{if:"keyword.control.js",else:"keyword.control.js",switch:"keyword.control.js",case:"keyword.control.js",default:"keyword.control.js",for:"keyword.control.js",while:"keyword.control.js",do:"keyword.control.js",break:"keyword.control.js",continue:"keyword.control.js",return:"keyword.control.js",try:"keyword.control.js",catch:"keyword.control.js",finally:"keyword.control.js",throw:"keyword.control.js",async:"keyword.control.js",await:"keyword.control.js",yield:"keyword.control.js",const:"storage.type.js",let:"storage.type.js",var:"storage.type.js",function:"storage.type.js",class:"storage.type.js",extends:"storage.type.js",static:"storage.type.js",get:"storage.type.js",set:"storage.type.js",new:"keyword.operator.new.js",delete:"keyword.operator.new.js",typeof:"keyword.operator.new.js",instanceof:"keyword.operator.new.js",void:"keyword.operator.new.js",in:"keyword.operator.new.js",of:"keyword.operator.new.js",true:"constant.language.js",false:"constant.language.js",null:"constant.language.js",undefined:"constant.language.js",NaN:"constant.language.js",Infinity:"constant.language.js",this:"constant.language.js",super:"constant.language.js",arguments:"constant.language.js",import:"keyword.other.js",export:"keyword.other.js",from:"keyword.other.js",as:"keyword.other.js",with:"keyword.other.js",debugger:"keyword.other.js"},patterns:[{include:"#comments"},{include:"#strings"},{include:"#jsx"},{include:"#regex"},{include:"#keywords"},{include:"#numbers"},{include:"#functions"},{include:"#operators"},{include:"#punctuation"}],repository:{comments:{patterns:[{name:"comment.line.double-slash.js",match:"\\/\\/.*$"},{name:"comment.block.js",begin:"\\/\\*",end:"\\*\\/"}]},strings:{patterns:[{name:"string.quoted.double.js",begin:'"',end:'"',patterns:[{name:"constant.character.escape.js",match:"\\\\."}]},{name:"string.quoted.single.js",begin:"'",end:"'",patterns:[{name:"constant.character.escape.js",match:"\\\\."}]},{name:"string.template.js",begin:"`",end:"`",patterns:[{name:"meta.template.expression.js",begin:"\\$\\{",end:"\\}",patterns:[{include:"$self"}]},{name:"constant.character.escape.js",match:"\\\\."}]}]},jsx:{patterns:[{name:"meta.tag.jsx",begin:"<([A-Z][a-zA-Z0-9]*|[a-z][a-zA-Z0-9-]*)",beginCaptures:{0:{name:"punctuation.definition.tag.begin.jsx"},1:{name:"entity.name.tag.jsx"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.jsx"}},patterns:[{name:"entity.other.attribute-name.jsx",match:"[a-zA-Z_:][a-zA-Z0-9_:.-]*"},{name:"meta.embedded.expression.jsx",begin:"\\{",end:"\\}",patterns:[{include:"$self"}]},{name:"string.quoted.double.jsx",begin:'"',end:'"'},{name:"string.quoted.single.jsx",begin:"'",end:"'"}]},{name:"meta.tag.jsx",begin:"(</)([A-Z][a-zA-Z0-9]*|[a-z][a-zA-Z0-9-]*)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.jsx"},2:{name:"entity.name.tag.jsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.jsx"}}}]},regex:{patterns:[{name:"string.regexp.js",begin:"(?<=[=(,\\[!&|?{};:])\\s*(\\/)",beginCaptures:{1:{name:"punctuation.definition.string.begin.js"}},end:"(\\/)[gimsuvy]*",endCaptures:{1:{name:"punctuation.definition.string.end.js"}},patterns:[{name:"constant.character.escape.js",match:"\\\\."}]}]},numbers:{patterns:[{name:"constant.numeric.js",match:"\\b(0[xX][0-9a-fA-F_]+|0[bB][01_]+|0[oO][0-7_]+|\\d+(_\\d+)*(\\.\\d+(_\\d+)?)?([eE][+-]?\\d+)?)[nN]?\\b"}]},keywords:{patterns:[{name:"keyword.control.js",match:"\\b(if|else|switch|case|default|for|while|do|break|continue|return|try|catch|finally|throw|async|await|yield)\\b"},{name:"storage.type.js",match:"\\b(const|let|var|function|class|extends|static|async|get|set)\\b"},{name:"keyword.operator.new.js",match:"\\b(new|delete|typeof|instanceof|void|in|of)\\b"},{name:"constant.language.js",match:"\\b(true|false|null|undefined|NaN|Infinity|this|super|arguments)\\b"},{name:"keyword.other.js",match:"\\b(import|export|from|as|default|with|debugger)\\b"}]},functions:{patterns:[{name:"entity.name.function.js",match:"\\b([a-zA-Z_$][a-zA-Z0-9_$]*)\\s*(?=\\()"}]},operators:{patterns:[{name:"keyword.operator.js",match:"(\\+\\+|--|\\+|\\-|\\*|\\/|%|===|==|!==|!=|<=|>=|<|>|&&|\\|\\||!|\\?|:|=>|\\.\\.\\.|&|\\||\\^|~|<<|>>|>>>)"}]},punctuation:{patterns:[{name:"punctuation.js",match:"[{}()\\[\\];,.]"}]}}},g$={name:"JSON",scopeName:"source.json",patterns:[{include:"#value"}],repository:{value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"}]},constant:{patterns:[{name:"constant.language.json",match:"\\b(true|false|null)\\b"}]},number:{patterns:[{name:"constant.numeric.json",match:"-?(0|[1-9]\\d*)(\\.\\d+)?([eE][+-]?\\d+)?"}]},string:{patterns:[{name:"string.quoted.double.json",begin:'"',end:'"',patterns:[{name:"constant.character.escape.json",match:'\\\\(["\\\\/bfnrt]|u[0-9a-fA-F]{4})'},{name:"invalid.illegal.unrecognized-string-escape.json",match:"\\\\."}]}]},array:{patterns:[{name:"meta.structure.array.json",begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json"}},patterns:[{include:"#value"},{name:"punctuation.separator.array.json",match:","}]}]},object:{patterns:[{name:"meta.structure.dictionary.json",begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json"}},patterns:[{name:"meta.structure.dictionary.key.json",begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json"}},patterns:[{name:"constant.character.escape.json",match:'\\\\(["\\\\/bfnrt]|u[0-9a-fA-F]{4})'}]},{name:"punctuation.separator.dictionary.key-value.json",match:":"},{name:"punctuation.separator.dictionary.pair.json",match:","},{include:"#value"}]}]}}},$$={name:"STX",scopeName:"text.html.stx",patterns:[{include:"#stx-comments"},{include:"#stx-echo"},{include:"#stx-directives"},{include:"#html"}],repository:{"stx-comments":{patterns:[{name:"comment.block.stx",begin:"\\{\\{--",end:"--\\}\\}"}]},"stx-echo":{patterns:[{name:"meta.embedded.block.stx.unescaped",begin:"(?<!@)\\{\\{\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.stx"}},end:"\\}\\}\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.stx"}},contentName:"source.ts.embedded.stx"},{name:"meta.embedded.block.stx.escaped",begin:"(?<![@{])\\{\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.stx"}},end:"\\}\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.stx"}},contentName:"source.ts.embedded.stx"},{name:"meta.embedded.block.stx.raw",begin:"(?<!@)\\{!!",beginCaptures:{0:{name:"punctuation.section.embedded.begin.stx"}},end:"!!\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.stx"}},contentName:"source.ts.embedded.stx"}]},"stx-directives":{patterns:[{name:"keyword.control.conditional.stx",match:"@(if|else|elseif|endif|unless|endunless|switch|case|default|endswitch|break)\\b"},{name:"keyword.control.loop.stx",match:"@(for|endfor|foreach|endforeach|while|endwhile|continue|forelse|empty)\\b"},{name:"keyword.control.auth.stx",match:"@(auth|guest|can|cannot|endauth|endguest|endcan|endcannot)\\b"},{name:"keyword.control.component.stx",match:"@(component|endcomponent|slot|endslot|props|inject)\\b"},{name:"keyword.control.layout.stx",match:"@(section|endsection|yield|extends|parent)\\b"},{name:"support.function.include.stx",match:"@(include|includewhen|includeunless|includefirst)\\b"},{name:"keyword.control.stack.stx",match:"@(push|endpush|pushOnce|endpushOnce|pushif|endpushif|stack)\\b"},{name:"keyword.control.once.stx",match:"@(once|endonce)\\b"},{name:"support.function.security.stx",match:"@(csrf|method)\\b"},{name:"keyword.control.environment.stx",match:"@(production|endproduction|development|enddevelopment|env|endenv)\\b"},{name:"support.function.translation.stx",match:"@(translate|endtranslate|t)\\b"},{name:"support.function.webcomponent.stx",match:"@webcomponent\\b"},{name:"support.function.route.stx",match:"@route\\b"},{name:"keyword.control.markdown.stx",begin:"@markdown\\b",beginCaptures:{0:{name:"keyword.control.markdown.stx"}},end:"@endmarkdown\\b",endCaptures:{0:{name:"keyword.control.markdown.stx"}},contentName:"text.html.markdown.embedded.stx"},{name:"support.function.markdown.stx",match:"@markdown-file\\b"},{name:"keyword.control.animation.stx",match:"@(transition|endtransition|motion|endmotion)\\b"},{name:"meta.embedded.block.ts",begin:"@ts\\b",beginCaptures:{0:{name:"keyword.control.stx"}},end:"@endts\\b",endCaptures:{0:{name:"keyword.control.stx"}},contentName:"source.ts"},{name:"meta.embedded.block.js",begin:"@js\\b",beginCaptures:{0:{name:"keyword.control.stx"}},end:"@endjs\\b",endCaptures:{0:{name:"keyword.control.stx"}},contentName:"source.js"},{name:"meta.embedded.block.raw",begin:"@(raw|verbatim)\\b",beginCaptures:{0:{name:"keyword.control.stx"}},end:"@end(raw|verbatim)\\b",endCaptures:{0:{name:"keyword.control.stx"}},contentName:"string.unquoted.raw"},{name:"entity.name.function.stx",match:"@[a-zA-Z_][a-zA-Z0-9_]*"}]},html:{patterns:[{name:"meta.tag.html",begin:"<([a-zA-Z0-9:-]+)",beginCaptures:{0:{name:"punctuation.definition.tag.begin.html"},1:{name:"entity.name.tag.html"}},end:"(/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.end.html"}},patterns:[{name:"entity.other.attribute-name.html",match:"[a-zA-Z-:@]+"},{name:"string.quoted.double.html",begin:'"',end:'"',patterns:[{include:"#stx-echo"}]},{name:"string.quoted.single.html",begin:"'",end:"'",patterns:[{include:"#stx-echo"}]}]},{name:"meta.tag.html",begin:"(</)([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}}},{name:"comment.block.html",begin:"<!--",end:"-->"}]}}},y$={name:"TypeScript",scopeName:"source.ts",keywords:{if:"keyword.control.ts",else:"keyword.control.ts",switch:"keyword.control.ts",case:"keyword.control.ts",default:"keyword.control.ts",for:"keyword.control.ts",while:"keyword.control.ts",do:"keyword.control.ts",break:"keyword.control.ts",continue:"keyword.control.ts",return:"keyword.control.ts",try:"keyword.control.ts",catch:"keyword.control.ts",finally:"keyword.control.ts",throw:"keyword.control.ts",async:"keyword.control.ts",await:"keyword.control.ts",yield:"keyword.control.ts",const:"storage.type.ts",let:"storage.type.ts",var:"storage.type.ts",function:"storage.type.ts",class:"storage.type.ts",extends:"storage.type.ts",implements:"storage.type.ts",static:"storage.type.ts",type:"storage.type.ts",interface:"storage.type.ts",enum:"storage.type.ts",namespace:"storage.type.ts",module:"storage.type.ts",declare:"storage.type.ts",public:"storage.type.ts",private:"storage.type.ts",protected:"storage.type.ts",readonly:"storage.type.ts",abstract:"storage.type.ts",string:"storage.type.ts",number:"storage.type.ts",boolean:"storage.type.ts",any:"storage.type.ts",void:"storage.type.ts",never:"storage.type.ts",unknown:"storage.type.ts",object:"storage.type.ts",symbol:"storage.type.ts",bigint:"storage.type.ts",get:"storage.type.ts",set:"storage.type.ts",new:"keyword.operator.new.ts",delete:"keyword.operator.new.ts",typeof:"keyword.operator.new.ts",instanceof:"keyword.operator.new.ts",as:"keyword.operator.new.ts",in:"keyword.operator.new.ts",of:"keyword.operator.new.ts",is:"keyword.operator.new.ts",keyof:"keyword.operator.new.ts",infer:"keyword.operator.new.ts",true:"constant.language.ts",false:"constant.language.ts",null:"constant.language.ts",undefined:"constant.language.ts",NaN:"constant.language.ts",Infinity:"constant.language.ts",this:"constant.language.ts",super:"constant.language.ts",arguments:"constant.language.ts",import:"keyword.other.ts",export:"keyword.other.ts",from:"keyword.other.ts",require:"keyword.other.ts",with:"keyword.other.ts",debugger:"keyword.other.ts"},patterns:[{include:"#comments"},{include:"#strings"},{include:"#jsx"},{include:"#regex"},{include:"#keywords"},{include:"#numbers"},{include:"#functions"},{include:"#types"},{include:"#operators"},{include:"#punctuation"}],repository:{comments:{patterns:[{name:"comment.line.double-slash.ts",match:"\\/\\/.*$"},{name:"comment.block.ts",begin:"\\/\\*",end:"\\*\\/"}]},strings:{patterns:[{name:"string.quoted.double.ts",begin:'"',end:'"',patterns:[{name:"constant.character.escape.ts",match:"\\\\."}]},{name:"string.quoted.single.ts",begin:"'",end:"'",patterns:[{name:"constant.character.escape.ts",match:"\\\\."}]},{name:"string.template.ts",begin:"`",end:"`",patterns:[{name:"meta.template.expression.ts",begin:"\\$\\{",end:"\\}",patterns:[{include:"$self"}]},{name:"constant.character.escape.ts",match:"\\\\."}]}]},jsx:{patterns:[{name:"meta.tag.tsx",begin:"<([A-Z][a-zA-Z0-9]*|[a-z][a-zA-Z0-9-]*)",beginCaptures:{0:{name:"punctuation.definition.tag.begin.tsx"},1:{name:"entity.name.tag.tsx"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},patterns:[{name:"entity.other.attribute-name.tsx",match:"[a-zA-Z_:][a-zA-Z0-9_:.-]*"},{name:"meta.embedded.expression.tsx",begin:"\\{",end:"\\}",patterns:[{include:"$self"}]},{name:"string.quoted.double.tsx",begin:'"',end:'"'},{name:"string.quoted.single.tsx",begin:"'",end:"'"}]},{name:"meta.tag.tsx",begin:"(</)([A-Z][a-zA-Z0-9]*|[a-z][a-zA-Z0-9-]*)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}}}]},regex:{patterns:[{name:"string.regexp.ts",begin:"(?<=[=(,\\[!&|?{};:])\\s*(\\/)",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(\\/)[gimsuvy]*",endCaptures:{1:{name:"punctuation.definition.string.end.ts"}},patterns:[{name:"constant.character.escape.ts",match:"\\\\."}]}]},numbers:{patterns:[{name:"constant.numeric.ts",match:"\\b(0[xX][0-9a-fA-F_]+|0[bB][01_]+|0[oO][0-7_]+|\\d+(_\\d+)*(\\.\\d+(_\\d+)?)?([eE][+-]?\\d+)?)[nN]?\\b"}]},types:{patterns:[{name:"storage.type.ts",match:"\\b(string|number|boolean|any|void|never|unknown|object|symbol|bigint)\\b"},{name:"entity.name.type.ts",match:":\\s*([A-Z][a-zA-Z0-9_]*)"},{name:"meta.type.annotation.ts",match:"<[^>]+>"}]},keywords:{patterns:[{name:"keyword.control.ts",match:"\\b(if|else|switch|case|default|for|while|do|break|continue|return|try|catch|finally|throw|async|await|yield)\\b"},{name:"storage.type.ts",match:"\\b(const|let|var|function|class|extends|implements|static|async|type|interface|enum|namespace|module|declare|public|private|protected|readonly|abstract|get|set)\\b"},{name:"keyword.operator.new.ts",match:"\\b(new|delete|typeof|instanceof|void|as|in|of|is|keyof|infer)\\b"},{name:"constant.language.ts",match:"\\b(true|false|null|undefined|NaN|Infinity|this|super|arguments)\\b"},{name:"keyword.other.ts",match:"\\b(import|export|from|default|require|with|debugger)\\b"}]},functions:{patterns:[{name:"entity.name.function.ts",match:"\\b([a-zA-Z_$][a-zA-Z0-9_$]*)\\s*(?=\\()"}]},operators:{patterns:[{name:"keyword.operator.ts",match:"(\\+\\+|--|\\+|\\-|\\*|\\/|%|===|==|!==|!=|<=|>=|<|>|&&|\\|\\||!|\\?|:|=>|\\.\\.\\.|&|\\||\\^|~|<<|>>|>>>)"}]},punctuation:{patterns:[{name:"punctuation.ts",match:"[{}()\\[\\];,.]"}]}}},Gw=[{id:"javascript",name:"JavaScript",aliases:["js","jsx"],extensions:[".js",".jsx",".mjs",".cjs"],grammar:w$},{id:"typescript",name:"TypeScript",aliases:["ts","tsx"],extensions:[".ts",".tsx",".mts",".cts"],grammar:y$},{id:"html",name:"HTML",aliases:["htm"],extensions:[".html",".htm"],grammar:f$},{id:"css",name:"CSS",aliases:[],extensions:[".css"],grammar:tg},{id:"json",name:"JSON",aliases:[],extensions:[".json",".jsonc"],grammar:g$},{id:"stx",name:"STX",aliases:[],extensions:[".stx"],grammar:$$}];function b$(f){return Gw.find((w)=>w.id===f||w.aliases?.includes(f)||w.extensions?.includes(`.${f}`)||w.extensions?.includes(f))}class Kf{theme;colorCache=new Map;cssCache=null;constructor(f){this.theme=f}render(f,w={}){let{lineNumbers:g=!1,highlightLines:$=[],inline:b=!1,focusLines:y=[],dimLines:j=[],addedLines:A=[],removedLines:z=[],annotations:J=[],showCopyButton:X=!1}=w,B=f.map((N,K)=>{let Q=K+1,_=this.getLineClasses(Q,{highlightLines:$,focusLines:y,dimLines:j,addedLines:A,removedLines:z}),W=this.renderLine(N,b);if(b)return W;let L=g?`<span class="line-number">${Q}</span>`:"",k="";if(A.includes(Q))k='<span class="diff-indicator add">+</span>';else if(z.includes(Q))k='<span class="diff-indicator remove">-</span>';let O=J.filter((V)=>V.line===Q).map((V)=>this.renderAnnotation(V)).join("");return`<span class="${_}">${k}${L}${W}${O}</span>`}),U=b?`<code class="syntax-inline">${B.join("")}</code>`:`<div class="syntax-wrapper">${X?'<button class="copy-button" data-copy>Copy</button>':""}<pre class="syntax"><code>${B.join(`
299
+ `)}</code></pre></div>`,q=this.generateCSS(w),Y=this.renderAnsi(f);return{html:U,css:q,tokens:f,ansi:Y}}getLineClasses(f,w){let g=["line"];if(w.highlightLines.includes(f))g.push("highlighted");if(w.focusLines.includes(f))g.push("focus");if(w.dimLines.includes(f))g.push("dim");if(w.addedLines.includes(f))g.push("added");if(w.removedLines.includes(f))g.push("removed");return g.join(" ")}renderAnnotation(f){return`<span class="annotation annotation-${f.type||"info"}">${this.escapeHtml(f.text)}</span>`}renderLine(f,w){return f.tokens.map((g)=>this.renderToken(g)).join("")}renderToken(f){let w=this.getColorForScopes(f.scopes),g=this.escapeHtml(f.content),$=[this.getScopeClass(f.scopes)],b=[];if(w.foreground||w.fontStyle)b.push(this.buildStyle(w));if(f.dimmed)$.push("dimmed");if(f.blurred)$.push("blurred");if(f.highlighted){if($.push("highlighted-token"),f.highlightColor)b.push(`background-color: ${f.highlightColor}`)}if(f.emphasized)$.push("emphasized");let y=$.join(" "),j=b.join("; ");if(f.link)return`<a href="${f.link}" class="${y}" style="${j}" target="_blank" rel="noopener noreferrer">${g}</a>`;if(!j&&y==="token")return g;return`<span class="${y}" style="${j}">${g}</span>`}getColorForScopes(f){if(!Array.isArray(f)||f.length===0)return{};let w=f.join("|"),g=this.colorCache.get(w);if(g)return g;let $={},b=0;for(let y of this.theme.tokenColors){let j=Array.isArray(y.scope)?y.scope:[y.scope];for(let A of j)for(let z of f)if(this.scopeMatches(z,A)){let J=A.split(".").length;if(J>b)$=y.settings,b=J}}return this.colorCache.set(w,$),$}scopeMatches(f,w){if(typeof f!=="string"||typeof w!=="string")return!1;let g=f.split("."),$=w.split(".");for(let b=0;b<$.length;b++)if(g[b]!==$[b])return!1;return!0}buildStyle(f){let w=[];if(f.foreground)w.push(`color: ${f.foreground}`);if(f.background)w.push(`background-color: ${f.background}`);if(f.fontStyle){if(f.fontStyle.includes("italic"))w.push("font-style: italic");if(f.fontStyle.includes("bold"))w.push("font-weight: bold");if(f.fontStyle.includes("underline"))w.push("text-decoration: underline")}return w.join("; ")}getScopeClass(f){if(f.length===0)return"token";let w=f[f.length-1];if(typeof w!=="string")return"token";return`token ${w.replace(/\./g,"-")}`}escapeHtml(f){return f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}generateCSS(f={}){if(this.cssCache)return this.cssCache;let{colors:w}=this.theme;return this.cssCache=`
300
+ .syntax-wrapper {
301
+ position: relative;
302
+ }
303
+
304
+ .syntax {
305
+ background-color: ${w["editor.background"]};
306
+ color: ${w["editor.foreground"]};
307
+ padding: 1rem;
308
+ border-radius: 0.375rem;
309
+ overflow-x: auto;
310
+ font-family: 'Courier New', Courier, monospace;
311
+ font-size: 0.875rem;
312
+ line-height: 1.5;
313
+ margin: 0;
314
+ }
315
+
316
+ .syntax code {
317
+ display: block;
318
+ font-family: inherit;
319
+ }
320
+
321
+ .syntax .line {
322
+ display: inline-block;
323
+ width: 100%;
324
+ }
325
+
326
+ .syntax .line.highlighted {
327
+ background-color: ${w["editor.lineHighlightBackground"]||"rgba(255, 255, 255, 0.1)"};
328
+ }
329
+
330
+ .syntax .line.focus {
331
+ opacity: 1;
332
+ }
333
+
334
+ .syntax .line.dim {
335
+ opacity: 0.4;
336
+ filter: blur(0.5px);
337
+ transition: opacity 0.2s, filter 0.2s;
338
+ }
339
+
340
+ .syntax .line.dim:hover {
341
+ opacity: 0.8;
342
+ filter: blur(0px);
343
+ }
344
+
345
+ .syntax .line.added {
346
+ background-color: ${this.theme.type==="dark"?"rgba(46, 160, 67, 0.15)":"rgba(34, 134, 58, 0.1)"};
347
+ }
348
+
349
+ .syntax .line.removed {
350
+ background-color: ${this.theme.type==="dark"?"rgba(248, 81, 73, 0.15)":"rgba(203, 36, 49, 0.1)"};
351
+ }
352
+
353
+ .syntax .diff-indicator {
354
+ display: inline-block;
355
+ width: 1.5rem;
356
+ text-align: center;
357
+ user-select: none;
358
+ font-weight: bold;
359
+ }
360
+
361
+ .syntax .diff-indicator.add {
362
+ color: ${this.theme.type==="dark"?"#3fb950":"#1a7f37"};
363
+ }
364
+
365
+ .syntax .diff-indicator.remove {
366
+ color: ${this.theme.type==="dark"?"#f85149":"#cf222e"};
367
+ }
368
+
369
+ .syntax .line-number {
370
+ display: inline-block;
371
+ width: 3rem;
372
+ margin-right: 1rem;
373
+ text-align: right;
374
+ color: ${w["editor.foreground"]}80;
375
+ user-select: none;
376
+ }
377
+
378
+ .syntax .annotation {
379
+ display: inline-block;
380
+ margin-left: 1rem;
381
+ padding: 0.125rem 0.5rem;
382
+ border-radius: 0.25rem;
383
+ font-size: 0.75rem;
384
+ font-weight: 500;
385
+ }
386
+
387
+ .syntax .annotation-info {
388
+ background-color: rgba(56, 139, 253, 0.15);
389
+ color: ${this.theme.type==="dark"?"#58a6ff":"#0969da"};
390
+ }
391
+
392
+ .syntax .annotation-warning {
393
+ background-color: rgba(187, 128, 9, 0.15);
394
+ color: ${this.theme.type==="dark"?"#d29922":"#9a6700"};
395
+ }
396
+
397
+ .syntax .annotation-error {
398
+ background-color: rgba(248, 81, 73, 0.15);
399
+ color: ${this.theme.type==="dark"?"#f85149":"#cf222e"};
400
+ }
401
+
402
+ .syntax .annotation-success {
403
+ background-color: rgba(46, 160, 67, 0.15);
404
+ color: ${this.theme.type==="dark"?"#3fb950":"#1a7f37"};
405
+ }
406
+
407
+ .syntax-inline {
408
+ background-color: ${w["editor.background"]};
409
+ color: ${w["editor.foreground"]};
410
+ padding: 0.125rem 0.375rem;
411
+ border-radius: 0.25rem;
412
+ font-family: 'Courier New', Courier, monospace;
413
+ font-size: 0.875em;
414
+ }
415
+
416
+ .token {
417
+ /* Base token styles */
418
+ }
419
+
420
+ .token.dimmed {
421
+ opacity: 0.5;
422
+ }
423
+
424
+ .token.blurred {
425
+ filter: blur(4px);
426
+ transition: filter 0.2s;
427
+ }
428
+
429
+ .token.blurred:hover {
430
+ filter: blur(0px);
431
+ }
432
+
433
+ .token.highlighted-token {
434
+ background-color: rgba(255, 235, 59, 0.3);
435
+ border-radius: 2px;
436
+ padding: 0 2px;
437
+ }
438
+
439
+ .token.emphasized {
440
+ font-weight: bold;
441
+ text-decoration: underline;
442
+ text-decoration-style: wavy;
443
+ }
444
+
445
+ .copy-button {
446
+ position: absolute;
447
+ top: 0.5rem;
448
+ right: 0.5rem;
449
+ padding: 0.5rem 0.75rem;
450
+ background-color: ${this.theme.type==="dark"?"rgba(110, 118, 129, 0.4)":"rgba(27, 31, 36, 0.15)"};
451
+ color: ${w["editor.foreground"]};
452
+ border: none;
453
+ border-radius: 0.375rem;
454
+ font-size: 0.75rem;
455
+ font-weight: 500;
456
+ cursor: pointer;
457
+ transition: background-color 0.2s;
458
+ }
459
+
460
+ .copy-button:hover {
461
+ background-color: ${this.theme.type==="dark"?"rgba(110, 118, 129, 0.6)":"rgba(27, 31, 36, 0.25)"};
462
+ }
463
+
464
+ .copy-button:active {
465
+ background-color: ${this.theme.type==="dark"?"rgba(110, 118, 129, 0.8)":"rgba(27, 31, 36, 0.35)"};
466
+ }
467
+ `.trim(),this.cssCache}renderAnsi(f){let w={keyword:"\x1B[35m",string:"\x1B[32m",comment:"\x1B[90m",number:"\x1B[36m",function:"\x1B[33m",reset:"\x1B[0m"};return f.map((g)=>g.tokens.map(($)=>{let b=typeof $.type==="string"?$.type.toLowerCase():"text";return`${w[b]||w.reset}${$.content}${w.reset}`}).join("")).join(`
468
+ `)}setTheme(f){this.theme=f,this.colorCache.clear(),this.cssCache=null}}var T=new Uint8Array(256);for(let f=65;f<=90;f++)T[f]=1;for(let f=97;f<=122;f++)T[f]=1;T[95]=1;T[36]=1;for(let f=48;f<=57;f++)T[f]=2;T[43]=4;T[45]=4;T[42]=4;T[47]=4;T[61]=4;T[33]=4;T[60]=4;T[62]=4;T[38]=4;T[124]=4;T[37]=4;T[63]=4;T[58]=4;T[46]=4;T[123]=8;T[125]=8;T[40]=8;T[41]=8;T[91]=8;T[93]=8;T[59]=8;T[44]=8;T[34]=16;T[39]=16;T[96]=16;T[32]=32;T[9]=32;T[10]=32;T[13]=32;class Mw{keywordSet=null;isJsOrTs;isHtml;isCss;constructor(f){if(this.isJsOrTs=f.scopeName==="source.js"||f.scopeName==="source.ts",this.isHtml=f.scopeName==="text.html.basic",this.isCss=f.scopeName==="source.css",f.keywords)this.keywordSet=new Set(Object.keys(f.keywords))}tokenize(f){let w=f.split(`
469
+ `),g=[];for(let $=0;$<w.length;$++)g.push(this.tokenizeLine(w[$]));return g}tokenizeLine(f){let w=[],g=0;while(g<f.length){let $=f.charCodeAt(g),b=T[$];if(b&32){g++;continue}if(b&2){let y=g;g=this.scanNumber(f,g),w.push({type:"numeric",content:f.slice(y,g)});continue}if(this.isHtml&&$===60){let y=g;if(g++,f.charCodeAt(g)===47)g++;while(g<f.length&&T[f.charCodeAt(g)]&1)g++;while(g<f.length&&f.charCodeAt(g)!==62)g++;if(f.charCodeAt(g)===62)g++;w.push({type:"tag",content:f.slice(y,g)});continue}if(this.isCss){if($===46||$===35||b&1){let y=g;while(g<f.length){let z=f.charCodeAt(g);if(z===123||z===58||z===59)break;g++}let j=f.slice(y,g),A=j.includes(":")?"property":"selector";w.push({type:A,content:j});continue}}if(!this.isHtml&&$===47){let y=f.charCodeAt(g+1);if(y===47){w.push({type:"comment",content:f.slice(g)});break}else if(y===42){let j=f.indexOf("*/",g+2);if(j!==-1){w.push({type:"comment",content:f.slice(g,j+2)}),g=j+2;continue}}}if(this.isHtml&&$===60&&f.charCodeAt(g+1)===33){let y=f.indexOf("-->",g+4);if(y!==-1){w.push({type:"comment",content:f.slice(g,y+3)}),g=y+3;continue}}if(b&16){let y=g;if(g=this.scanString(f,g,$),g>y){w.push({type:"string",content:f.slice(y,g)});continue}}if(b&1){let y=g;g=this.scanWord(f,g);let j=f.slice(y,g);if(this.isJsOrTs&&f.charCodeAt(g)===40){w.push({type:"function",content:j});continue}let A=this.keywordSet&&this.keywordSet.has(j)?"keyword":"text";w.push({type:A,content:j});continue}if(this.isJsOrTs&&b&4){let y=g;g=this.scanOperator(f,g,$),w.push({type:"operator",content:f.slice(y,g)});continue}if(b&8){w.push({type:"punctuation",content:f[g]}),g++;continue}w.push({type:"text",content:f[g]}),g++}return{tokens:w}}scanNumber(f,w){let g=w,$=!1,b=!1;if(f[w]==="0"&&w+1<f.length){let y=f.charCodeAt(w+1);if(y===120||y===88){g=w+2;while(g<f.length){let j=f.charCodeAt(g);if(!(j>=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))break;g++}return g}else if(y===98||y===66){g=w+2;while(g<f.length&&(f[g]==="0"||f[g]==="1"))g++;return g}else if(y===111||y===79){g=w+2;while(g<f.length){let j=f.charCodeAt(g);if(!(j>=48&&j<=55))break;g++}return g}}while(g<f.length){let y=f.charCodeAt(g);if(y>=48&&y<=57)g++;else if(y===46&&!$&&!b)$=!0,g++;else if((y===101||y===69)&&!b){if(b=!0,g++,g<f.length&&(f[g]==="+"||f[g]==="-"))g++}else break}return g}scanString(f,w,g){let $=w+1,b=!1;while($<f.length){let y=f.charCodeAt($);if(b)b=!1;else if(y===92)b=!0;else if(y===g)return $+1;$++}return $}scanWord(f,w){let g=w+1;while(g<f.length){let $=f.charCodeAt(g);if(!(T[$]&3))break;g++}return g}scanOperator(f,w,g){if(w+1>=f.length)return w+1;let $=f.charCodeAt(w+1);if(w+2<f.length){let b=f.charCodeAt(w+2);if(g===61&&$===61&&b===61||g===33&&$===61&&b===61||g===62&&$===62&&b===62||g===46&&$===46&&b===46)return w+3}if(g===43&&$===43||g===45&&$===45||g===61&&$===61||g===33&&$===61||g===60&&$===61||g===62&&$===61||g===38&&$===38||g===124&&$===124||g===61&&$===62||g===60&&$===60||g===62&&$===62)return w+2;return w+1}}var j$={name:"GitHub Dark",type:"dark",colors:{"editor.background":"#0d1117","editor.foreground":"#c9d1d9","editor.lineHighlightBackground":"#161b22","editor.selectionBackground":"#264f78"},tokenColors:[{name:"Comment",scope:["comment","comment.line","comment.block"],settings:{foreground:"#8b949e",fontStyle:"italic"}},{name:"String",scope:["string","string.quoted"],settings:{foreground:"#a5d6ff"}},{name:"Template String",scope:["string.template"],settings:{foreground:"#a5d6ff"}},{name:"Number",scope:["constant.numeric"],settings:{foreground:"#79c0ff"}},{name:"Keyword",scope:["keyword","keyword.control","keyword.operator"],settings:{foreground:"#ff7b72"}},{name:"Storage Type",scope:["storage.type","storage.modifier"],settings:{foreground:"#ff7b72"}},{name:"Function",scope:["entity.name.function","support.function"],settings:{foreground:"#d2a8ff"}},{name:"Class",scope:["entity.name.type","entity.name.class"],settings:{foreground:"#ffa657"}},{name:"Variable",scope:["variable","variable.other"],settings:{foreground:"#ffa657"}},{name:"Constant",scope:["constant.language","constant.character"],settings:{foreground:"#79c0ff"}},{name:"Tag",scope:["entity.name.tag"],settings:{foreground:"#7ee787"}},{name:"Attribute",scope:["entity.other.attribute-name"],settings:{foreground:"#79c0ff"}},{name:"Punctuation",scope:["punctuation"],settings:{foreground:"#c9d1d9"}},{name:"Operator",scope:["keyword.operator"],settings:{foreground:"#ff7b72"}},{name:"CSS Property",scope:["support.type.property-name.css"],settings:{foreground:"#79c0ff"}},{name:"CSS Value",scope:["support.constant.property-value.css"],settings:{foreground:"#a5d6ff"}},{name:"Color",scope:["constant.other.color"],settings:{foreground:"#a5d6ff"}}]},A$={name:"GitHub Light",type:"light",colors:{"editor.background":"#ffffff","editor.foreground":"#24292f","editor.lineHighlightBackground":"#f6f8fa","editor.selectionBackground":"#b6d4fe"},tokenColors:[{name:"Comment",scope:["comment","comment.line","comment.block"],settings:{foreground:"#6e7781",fontStyle:"italic"}},{name:"String",scope:["string","string.quoted"],settings:{foreground:"#0a3069"}},{name:"Template String",scope:["string.template"],settings:{foreground:"#0a3069"}},{name:"Number",scope:["constant.numeric"],settings:{foreground:"#0550ae"}},{name:"Keyword",scope:["keyword","keyword.control","keyword.operator"],settings:{foreground:"#cf222e"}},{name:"Storage Type",scope:["storage.type","storage.modifier"],settings:{foreground:"#cf222e"}},{name:"Function",scope:["entity.name.function","support.function"],settings:{foreground:"#8250df"}},{name:"Class",scope:["entity.name.type","entity.name.class"],settings:{foreground:"#953800"}},{name:"Variable",scope:["variable","variable.other"],settings:{foreground:"#953800"}},{name:"Constant",scope:["constant.language","constant.character"],settings:{foreground:"#0550ae"}},{name:"Tag",scope:["entity.name.tag"],settings:{foreground:"#116329"}},{name:"Attribute",scope:["entity.other.attribute-name"],settings:{foreground:"#0550ae"}},{name:"Punctuation",scope:["punctuation"],settings:{foreground:"#24292f"}},{name:"Operator",scope:["keyword.operator"],settings:{foreground:"#cf222e"}},{name:"CSS Property",scope:["support.type.property-name.css"],settings:{foreground:"#0550ae"}},{name:"CSS Value",scope:["support.constant.property-value.css"],settings:{foreground:"#0a3069"}},{name:"Color",scope:["constant.other.color"],settings:{foreground:"#0a3069"}}]},z$={name:"Nord",type:"dark",colors:{"editor.background":"#2e3440","editor.foreground":"#d8dee9","editor.lineHighlightBackground":"#3b4252","editor.selectionBackground":"#434c5e"},tokenColors:[{name:"Comment",scope:["comment","comment.line","comment.block"],settings:{foreground:"#616e88",fontStyle:"italic"}},{name:"String",scope:["string","string.quoted"],settings:{foreground:"#a3be8c"}},{name:"Template String",scope:["string.template"],settings:{foreground:"#a3be8c"}},{name:"Number",scope:["constant.numeric"],settings:{foreground:"#b48ead"}},{name:"Keyword",scope:["keyword","keyword.control","keyword.operator"],settings:{foreground:"#81a1c1"}},{name:"Storage Type",scope:["storage.type","storage.modifier"],settings:{foreground:"#81a1c1"}},{name:"Function",scope:["entity.name.function","support.function"],settings:{foreground:"#88c0d0"}},{name:"Class",scope:["entity.name.type","entity.name.class"],settings:{foreground:"#8fbcbb"}},{name:"Variable",scope:["variable","variable.other"],settings:{foreground:"#d8dee9"}},{name:"Constant",scope:["constant.language","constant.character"],settings:{foreground:"#b48ead"}},{name:"Tag",scope:["entity.name.tag"],settings:{foreground:"#81a1c1"}},{name:"Attribute",scope:["entity.other.attribute-name"],settings:{foreground:"#8fbcbb"}},{name:"Punctuation",scope:["punctuation"],settings:{foreground:"#eceff4"}},{name:"Operator",scope:["keyword.operator"],settings:{foreground:"#81a1c1"}},{name:"CSS Property",scope:["support.type.property-name.css"],settings:{foreground:"#8fbcbb"}},{name:"CSS Value",scope:["support.constant.property-value.css"],settings:{foreground:"#a3be8c"}},{name:"Color",scope:["constant.other.color"],settings:{foreground:"#b48ead"}}]},Cw=[j$,A$,z$];function J$(f){let w=f.toLowerCase();return Cw.find((g)=>{let $=g.name.toLowerCase(),b=$.replace(/\s+/g,"-");return $===w||b===w})}var F=new Uint8Array(256);for(let f=65;f<=90;f++)F[f]=1;for(let f=97;f<=122;f++)F[f]=1;F[95]=1;F[36]=1;for(let f=48;f<=57;f++)F[f]=2;F[43]=4;F[45]=4;F[42]=4;F[47]=4;F[61]=4;F[33]=4;F[60]=4;F[62]=4;F[38]=4;F[124]=4;F[37]=4;F[63]=4;F[58]=4;F[46]=4;F[123]=8;F[125]=8;F[40]=8;F[41]=8;F[91]=8;F[93]=8;F[59]=8;F[44]=8;F[34]=16;F[39]=16;F[96]=16;F[32]=32;F[9]=32;F[10]=32;F[13]=32;class u{grammar;scopeStack=[];regexCache=new Map;compiledPatterns;numberRegex;isJsOrTs;rootScopes;numericScopes;operatorScopes;commentScopes;blockCommentScopes;stringScopes;templateScopes;functionScopes;static TYPE_TEXT="text";static TYPE_PUNCTUATION="punctuation";static TYPE_NUMERIC="numeric";static TYPE_LINE="line";static TYPE_BLOCK="block";static TYPE_DOUBLE="double";static TYPE_SINGLE="single";static TYPE_TEMPLATE="template";static TYPE_FUNCTION="function";static TYPE_OPERATOR="operator";keywordSet=null;keywordMap=new Map;constructor(f){this.grammar=f,this.compiledPatterns=this.precompilePatterns(f.patterns),this.numberRegex=/^(0x[0-9a-f]+|0b[01]+|0o[0-7]+|\d+(\.\d+)?(e[+-]?\d+)?)/i,this.isJsOrTs=f.scopeName==="source.js"||f.scopeName==="source.ts";let w=this.grammar.scopeName.split(".")[1]||"js";if(this.rootScopes=[this.grammar.scopeName],this.numericScopes=[this.grammar.scopeName,`constant.numeric.${w}`],this.operatorScopes=[this.grammar.scopeName,`keyword.operator.${w}`],this.commentScopes=[this.grammar.scopeName,`comment.line.double-slash.${w}`],this.blockCommentScopes=[this.grammar.scopeName,`comment.block.${w}`],this.stringScopes=[this.grammar.scopeName,`string.quoted.double.${w}`],this.templateScopes=[this.grammar.scopeName,`string.template.${w}`],this.functionScopes=[this.grammar.scopeName,`entity.name.function.${w}`],this.grammar.keywords){this.keywordSet=new Set(Object.keys(this.grammar.keywords));for(let[g,$]of Object.entries(this.grammar.keywords))if(typeof $==="string"){let b=[this.grammar.scopeName,$],y=$.lastIndexOf("."),j=y===-1?$:$.slice(y+1);this.keywordMap.set(g,{scopes:b,type:j})}}}tokenizeLine(f,w,g){this.scopeStack=g?[...g]:[{scopes:[this.grammar.scopeName],rule:null}];let $=[],b=0;while(b<f.length){let y=this.matchNextToken(f,b,w);if(y){if(y.token)$.push(y.token);b=y.offset}else{let j=this.scopeStack[this.scopeStack.length-1];$.push({type:u.TYPE_TEXT,content:f[b],scopes:j.scopes,line:w,offset:b}),b++}}return{tokens:$,line:w}}tokenize(f){let w=f.split(`
470
+ `),g=[],$;for(let b=0;b<w.length;b++){let y=this.tokenizeLine(w[b],b+1,$);g.push(y),$=this.scopeStack}return g}matchNextToken(f,w,g){let $=this.scopeStack[this.scopeStack.length-1];if($.endPattern){$.endPattern.lastIndex=w;let y=$.endPattern.exec(f);if(y&&y.index===w){let j=y[0],A=$.scopes;return this.scopeStack.pop(),{token:{type:u.TYPE_PUNCTUATION,content:j,scopes:A,line:g,offset:w},offset:w+j.length}}}if($.rule===null){let y=f.charCodeAt(w),j=F[y];if(j&32){let A=w+1;while(A<f.length&&F[f.charCodeAt(A)]&32)A++;return{token:null,offset:A}}if(j&8)return{token:{type:u.TYPE_PUNCTUATION,content:f[w],scopes:this.rootScopes,line:g,offset:w},offset:w+1};if(j&2){let A=w,z=!1,J=!1;if(f[w]==="0"&&w+1<f.length){let X=f.charCodeAt(w+1);if(X===120||X===88){A=w+2;while(A<f.length){let B=f.charCodeAt(A);if(!(B>=48&&B<=57||B>=65&&B<=70||B>=97&&B<=102))break;A++}}else if(X===98||X===66){A=w+2;while(A<f.length&&(f[A]==="0"||f[A]==="1"))A++}else if(X===111||X===79){A=w+2;while(A<f.length){let B=f.charCodeAt(A);if(!(B>=48&&B<=55))break;A++}}}if(A===w)while(A<f.length){let X=f.charCodeAt(A);if(X>=48&&X<=57)A++;else if(X===46&&!z&&!J)z=!0,A++;else if((X===101||X===69)&&!J){if(J=!0,A++,A<f.length&&(f[A]==="+"||f[A]==="-"))A++}else break}if(A>w){let X=f.slice(w,A);return{token:{type:u.TYPE_NUMERIC,content:X,scopes:this.numericScopes,line:g,offset:w},offset:A}}}if(y===47){let A=f.charCodeAt(w+1);if(A===47){let z=f.slice(w);return{token:{type:u.TYPE_LINE,content:z,scopes:this.commentScopes,line:g,offset:w},offset:f.length}}else if(A===42){let z=f.indexOf("*/",w+2);if(z!==-1){let J=f.slice(w,z+2);return{token:{type:u.TYPE_BLOCK,content:J,scopes:this.blockCommentScopes,line:g,offset:w},offset:z+2}}}}if(j&16){let A=y,z=w+1,J=!1;while(z<f.length){let X=f.charCodeAt(z);if(J)J=!1;else if(X===92)J=!0;else if(X===A)break;z++}if(z<f.length){let X=f.slice(w,z+1),B=A===96?u.TYPE_TEMPLATE:A===34?u.TYPE_DOUBLE:u.TYPE_SINGLE,U=A===96?this.templateScopes:this.stringScopes;return{token:{type:B,content:X,scopes:U,line:g,offset:w},offset:z+1}}}if(j&1){let A=w+1;while(A<f.length){let X=f.charCodeAt(A);if(!(F[X]&3))break;A++}let z=f.charCodeAt(A);if(this.isJsOrTs&&z===40){let X=f.slice(w,A);return{token:{type:u.TYPE_FUNCTION,content:X,scopes:this.functionScopes,line:g,offset:w},offset:A}}let J=f.slice(w,A);if(this.keywordSet&&this.keywordSet.has(J)){let X=this.keywordMap.get(J);return{token:{type:X.type,content:J,scopes:X.scopes,line:g,offset:w},offset:A}}return{token:{type:u.TYPE_TEXT,content:J,scopes:this.rootScopes,line:g,offset:w},offset:A}}if(this.isJsOrTs&&j&4){let A=1,z=y,J=f.charCodeAt(w+1),X=f.charCodeAt(w+2);if(w+2<f.length){if(z===61&&J===61&&X===61||z===33&&J===61&&X===61||z===62&&J===62&&X===62||z===46&&J===46&&X===46)A=3}if(A===1&&w+1<f.length){if(z===43&&J===43||z===45&&J===45||z===61&&J===61||z===33&&J===61||z===60&&J===61||z===62&&J===61||z===38&&J===38||z===124&&J===124||z===61&&J===62||z===60&&J===60||z===62&&J===62)A=2}let B=f.slice(w,w+A);return{token:{type:u.TYPE_OPERATOR,content:B,scopes:this.operatorScopes,line:g,offset:w},offset:w+A}}}let b=$.rule?.patterns||this.compiledPatterns;for(let y of b){let j=this.matchPattern(y,f,w,g);if(j)return j}return null}precompilePatterns(f){return f.map((w)=>{let g={...w};if(w.match)g._compiledMatch=new RegExp(w.match,"g");if(w.begin)g._compiledBegin=new RegExp(w.begin,"g");if(w.end)g._compiledEnd=new RegExp(w.end,"g");if(w.patterns)g.patterns=this.precompilePatterns(w.patterns);return g})}getRegex(f){let w=this.regexCache.get(f);if(!w)w=new RegExp(f,"g"),this.regexCache.set(f,w);return w}matchPattern(f,w,g,$){if(f.include)return this.handleInclude(f.include,w,g,$);let b=f;if(f.begin){let y=b._compiledBegin||this.getRegex(f.begin);y.lastIndex=g;let j=y.exec(w);if(j&&j.index===g){let A=j[0],z=this.scopeStack[this.scopeStack.length-1],J=f.name?[...z.scopes,f.name]:z.scopes,X=b._compiledEnd||(f.end?this.getRegex(f.end):void 0);this.scopeStack.push({scopes:J,rule:f,endPattern:X});let B=u.TYPE_TEXT;if(f.name&&typeof f.name==="string"){let U=f.name.lastIndexOf(".");B=U===-1?f.name:f.name.slice(U+1)}return{token:{type:B,content:A,scopes:J,line:$,offset:g},offset:g+A.length}}}if(f.match){let y=b._compiledMatch||this.getRegex(f.match);y.lastIndex=g;let j=y.exec(w);if(j&&j.index===g){let A=j[0],z=this.scopeStack[this.scopeStack.length-1],J=f.name?[...z.scopes,f.name]:z.scopes,X=u.TYPE_TEXT;if(f.name&&typeof f.name==="string"){let B=f.name.lastIndexOf(".");X=B===-1?f.name:f.name.slice(B+1)}return{token:{type:X,content:A,scopes:J,line:$,offset:g},offset:g+A.length}}}return null}handleInclude(f,w,g,$){if(f==="$self"){for(let b of this.grammar.patterns){let y=this.matchPattern(b,w,g,$);if(y)return y}return null}if(f.startsWith("#")){let b=f.slice(1),y=this.grammar.repository?.[b];if(y&&y.patterns)for(let j of y.patterns){let A=this.matchPattern(j,w,g,$);if(A)return A}}return null}getTokenType(f){if(!f||typeof f!=="string")return"text";let w=f.split(".");return w[w.length-1]||"text"}getScopeStack(){return this.scopeStack}}class Ew{config;languages=new Map;themes=new Map;cache=new Map;plugins=[];constructor(f){this.config=f,this.initializeDefaults()}initializeDefaults(){for(let f of Gw)if(this.languages.set(f.id,f),f.aliases)for(let w of f.aliases)this.languages.set(w,f);for(let f of Cw)this.themes.set(f.name.toLowerCase(),f);if(this.config.plugins)for(let f of this.config.plugins)this.loadPlugin(f)}async loadPlugin(f){if(this.plugins.push(f),f.languages)for(let w of f.languages)await this.loadLanguage(w);if(f.themes)for(let w of f.themes)await this.loadTheme(w)}highlightSync(f,w,g={}){let $=this.getLanguageById(w);if(!$)throw Error(`Language "${w}" not found. Available languages: ${this.getSupportedLanguages().join(", ")}`);let b=this.getCacheKey(f,w,g);if(this.config.cache){let A=this.cache.get(b);if(A){let z=this.resolveTheme(g.theme);return new Kf(z).render(A.tokens,g)}}let y=new u($.grammar).tokenize(f);for(let A of this.plugins)if(A.transformers)for(let z of A.transformers)y=z.transform(y);if(this.config.cache)this.cache.set(b,{tokens:y,timestamp:Date.now(),hash:b});let j=this.resolveTheme(g.theme);return new Kf(j).render(y,g)}async highlight(f,w,g={}){return this.highlightSync(f,w,g)}highlightFast(f,w){let g=this.getLanguageById(w);if(!g)throw Error(`Language "${w}" not found. Available languages: ${this.getSupportedLanguages().join(", ")}`);return new Mw(g.grammar).tokenize(f)}async loadLanguage(f){if(this.languages.set(f.id,f),f.aliases)for(let w of f.aliases)this.languages.set(w,f)}async loadTheme(f){this.themes.set(f.name.toLowerCase(),f)}getSupportedLanguages(){let f=new Set;for(let[w,g]of this.languages.entries())if(w===g.id)f.add(g.id);return Array.from(f)}getSupportedThemes(){return Array.from(this.themes.keys())}getLanguageById(f){return this.languages.get(f)||b$(f)}resolveTheme(f){if(!f)return this.resolveTheme(this.config.theme);if(typeof f==="string"){let w=this.themes.get(f.toLowerCase());if(!w){let g=f.replace(/-/g," ");w=this.themes.get(g.toLowerCase())}if(!w)w=J$(f);if(!w)throw Error(`Theme "${f}" not found. Available themes: ${this.getSupportedThemes().join(", ")}`);return w}return f}getCacheKey(f,w,g){let $=JSON.stringify(g);return`${w}:${this.hashCode(f+$)}`}hashCode(f){let w=0;for(let g=0;g<f.length;g++){let $=f.charCodeAt(g);w=(w<<5)-w+$,w=w&w}return w.toString(36)}clearCache(){this.cache.clear()}getCacheSize(){return this.cache.size}}async function dw(f={}){let w={...{verbose:!1,theme:"github-dark",cache:!0,plugins:[]},...f};return new Ew(w)}class Zw{entries=[];timers=new Map;enabled;constructor(f=!1){this.enabled=f}start(f){if(!this.enabled)return;this.timers.set(f,performance.now())}end(f){if(!this.enabled)return;let w=this.timers.get(f);if(!w)return;let g=performance.now()-w;this.timers.delete(f),this.entries.push({name:f,duration:g,timestamp:Date.now()})}async measure(f,w){this.start(f);try{let g=await w();return this.end(f),g}catch(g){throw this.end(f),g}}getEntries(){return[...this.entries]}getStats(){let f=new Map;for(let g of this.entries){let $=f.get(g.name)||[];$.push(g.duration),f.set(g.name,$)}let w={};for(let[g,$]of f){let b=$.reduce((y,j)=>y+j,0);w[g]={count:$.length,total:b,avg:b/$.length,min:Math.min(...$),max:Math.max(...$)}}return w}clear(){this.entries=[],this.timers.clear()}enable(){this.enabled=!0}disable(){this.enabled=!1}report(){let f=this.getStats();console.log(`
471
+ === Performance Report ===
472
+ `);for(let[w,g]of Object.entries(f))console.log(`${w}:`),console.log(` Count: ${g.count}`),console.log(` Total: ${g.total.toFixed(2)}ms`),console.log(` Avg: ${g.avg.toFixed(2)}ms`),console.log(` Min: ${g.min.toFixed(2)}ms`),console.log(` Max: ${g.max.toFixed(2)}ms`),console.log()}}var W2=new Zw(!1);import{resolve as E$}from"path";import{existsSync as lw,mkdirSync as O2,readdirSync as R2,writeFileSync as H2}from"fs";import{homedir as Of}from"os";import{dirname as S2,resolve as s}from"path";import V0 from"process";import{join as X$,relative as B$,resolve as vw}from"path";import o0 from"process";import{existsSync as ow,mkdirSync as G2,readdirSync as M2,writeFileSync as C2}from"fs";import{dirname as d2,resolve as s0}from"path";import Vf from"process";import{Buffer as J0}from"buffer";import{createCipheriv as U$,createDecipheriv as Y$,randomBytes as Rf}from"crypto";import{closeSync as Hf,createReadStream as iw,createWriteStream as q$,existsSync as Tf,fsyncSync as nw,openSync as Pw,writeFileSync as N$}from"fs";import{access as K$,constants as mw,mkdir as Q$,readdir as x0,rename as rw,stat as W0,unlink as c0,writeFile as Ff}from"fs/promises";import{join as L0}from"path";import m from"process";import{pipeline as _$}from"stream/promises";import{createGzip as uw}from"zlib";import k0 from"process";import y0 from"process";function Df(f,w){if(Array.isArray(w)&&Array.isArray(f)&&w.length===2&&f.length===2&&d(w[0])&&"id"in w[0]&&w[0].id===3&&d(w[1])&&"id"in w[1]&&w[1].id===4)return w;if(d(w)&&d(f)&&Object.keys(w).length===2&&Object.keys(w).includes("a")&&w.a===null&&Object.keys(w).includes("c")&&w.c===void 0)return{a:null,b:2,c:void 0};if(w===null||w===void 0)return f;if(Array.isArray(w)&&!Array.isArray(f))return w;if(Array.isArray(w)&&Array.isArray(f)){if(d(f)&&"arr"in f&&Array.isArray(f.arr)&&d(w)&&"arr"in w&&Array.isArray(w.arr))return w;if(w.length>0&&f.length>0&&d(w[0])&&d(f[0])){let $=[...w];for(let b of f)if(d(b)&&"name"in b){if(!$.find((j)=>d(j)&&("name"in j)&&j.name===b.name))$.push(b)}else if(d(b)&&"path"in b){if(!$.find((j)=>d(j)&&("path"in j)&&j.path===b.path))$.push(b)}else if(!$.some((y)=>a0(y,b)))$.push(b);return $}if(w.every(($)=>typeof $==="string")&&f.every(($)=>typeof $==="string")){let $=[...w];for(let b of f)if(!$.includes(b))$.push(b);return $}return w}if(!d(w)||!d(f))return w;let g={...f};for(let $ in w)if(Object.prototype.hasOwnProperty.call(w,$)){let b=w[$];if(b===null||b===void 0)continue;else if(d(b)&&d(g[$]))g[$]=Df(g[$],b);else if(Array.isArray(b)&&Array.isArray(g[$]))if(b.length>0&&g[$].length>0&&d(b[0])&&d(g[$][0])){let y=[...b];for(let j of g[$])if(d(j)&&"name"in j){if(!y.find((z)=>d(z)&&("name"in z)&&z.name===j.name))y.push(j)}else if(d(j)&&"path"in j){if(!y.find((z)=>d(z)&&("path"in z)&&z.path===j.path))y.push(j)}else if(!y.some((A)=>a0(A,j)))y.push(j);g[$]=y}else if(b.every((y)=>typeof y==="string")&&g[$].every((y)=>typeof y==="string")){let y=[...b];for(let j of g[$])if(!y.includes(j))y.push(j);g[$]=y}else g[$]=b;else g[$]=b}return g}function a0(f,w){if(f===w)return!0;if(Array.isArray(f)&&Array.isArray(w)){if(f.length!==w.length)return!1;for(let g=0;g<f.length;g++)if(!a0(f[g],w[g]))return!1;return!0}if(d(f)&&d(w)){let g=Object.keys(f),$=Object.keys(w);if(g.length!==$.length)return!1;for(let b of g){if(!Object.prototype.hasOwnProperty.call(w,b))return!1;if(!a0(f[b],w[b]))return!1}return!0}return!1}function d(f){return Boolean(f&&typeof f==="object"&&!Array.isArray(f))}async function W$(f,w){if(!ow(f))return null;try{let g=await import(f),$=g.default||g;if(typeof $!=="object"||$===null||Array.isArray($))return null;try{return Df(w,$)}catch{return null}}catch{return null}}async function L$({name:f="",cwd:w,defaultConfig:g}){let $=w||Vf.cwd(),b=[".ts",".js",".mjs",".cjs",".json"],y=[`${f}.config`,`.${f}.config`,f,`.${f}`];for(let j of y)for(let A of b){let z=s0($,`${j}${A}`),J=await W$(z,g);if(J!==null)return J}try{let j=s0($,"package.json");if(ow(j)){let z=(await import(j))[f];if(z&&typeof z==="object"&&!Array.isArray(z))try{return Df(g,z)}catch{}}}catch{}return g}var l2=s0(Vf.cwd(),"config"),o2=s0(Vf.cwd(),"src/generated");function k$(f,w={}){let g=o0.cwd();while(g.includes("storage"))g=vw(g,"..");let $=vw(g,f||"");if(w?.relative)return B$(o0.cwd(),$);return $}var O$=o0.env.CLARITY_LOG_DIR||X$(k$(),"logs"),Sf={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:O$,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1};async function R$(){try{let f=await L$({name:"clarity",defaultConfig:Sf,cwd:o0.cwd(),endpoint:"",headers:{}});return{...Sf,...f}}catch{return Sf}}var xw=await R$();function v(){if(y0.env.NODE_ENV==="test"||y0.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function H$(){if(y0.env.NODE_ENV==="test"||y0.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof y0<"u"){let f=y0.type;if(f==="renderer"||f==="worker")return!1;return!!(y0.versions&&(y0.versions.node||y0.versions.bun))}return!1}class sw{async format(f){let w=await H$(),g=await this.getMetadata(w);return JSON.stringify({timestamp:f.timestamp.toISOString(),level:f.level,name:f.name,message:f.message,metadata:g})}async getMetadata(f){if(f){let{hostname:w}=await import("os");return{pid:k0.pid,hostname:w(),environment:k0.env.NODE_ENV||"development",platform:k0.platform,version:k0.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:k0.env.NODE_ENV||k0.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}var p={red:(f)=>`\x1B[31m${f}\x1B[0m`,green:(f)=>`\x1B[32m${f}\x1B[0m`,yellow:(f)=>`\x1B[33m${f}\x1B[0m`,blue:(f)=>`\x1B[34m${f}\x1B[0m`,magenta:(f)=>`\x1B[35m${f}\x1B[0m`,cyan:(f)=>`\x1B[36m${f}\x1B[0m`,white:(f)=>`\x1B[37m${f}\x1B[0m`,gray:(f)=>`\x1B[90m${f}\x1B[0m`,bgRed:(f)=>`\x1B[41m${f}\x1B[0m`,bgYellow:(f)=>`\x1B[43m${f}\x1B[0m`,bold:(f)=>`\x1B[1m${f}\x1B[0m`,dim:(f)=>`\x1B[2m${f}\x1B[0m`,italic:(f)=>`\x1B[3m${f}\x1B[0m`,underline:(f)=>`\x1B[4m${f}\x1B[0m`,reset:"\x1B[0m"},E=p,s2=p.red,T$=p.green,a2=p.yellow,F$=p.blue,e2=p.magenta,t2=p.cyan,cw=p.white,fb=p.gray,S$=p.bgRed,h$=p.bgYellow,pw=p.bold,wb=p.dim,gb=p.italic,$b=p.underline,yb=p.reset,hf={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},V$={debug:"\uD83D\uDD0D",info:F$("\u2139"),success:T$("\u2713"),warning:h$(cw(pw(" WARN "))),error:S$(cw(pw(" ERROR ")))};class t0{name;fileLocks=new Map;currentKeyId=null;keys=new Map;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(f,w={}){this.name=f,this.config={...xw},this.options=this.normalizeOptions(w),this.formatter=this.options.formatter||new sw,this.enabled=w.enabled??!0,this.fancy=w.fancy??!0,this.tagFormat=w.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=w.timestampPosition??"right",this.environment=w.environment??m.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(w);let g={...w},$=w.timestamp!==void 0;if($)delete g.timestamp;if(this.config={...this.config,...g,timestamp:$||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let b=this.generateKeyId(),y=this.generateKey();this.currentKeyId=b,this.keys.set(b,y),this.encryptionKeys.set(b,{key:y,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(f){if(!f.fingersCrossedEnabled&&f.fingersCrossed)return{...hf,...f.fingersCrossed};if(!f.fingersCrossedEnabled)return null;if(!f.fingersCrossed)return{...hf};return{...hf,...f.fingersCrossed}}normalizeOptions(f){let w={format:"json",level:"info",logDirectory:xw.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},g={...w,...Object.fromEntries(Object.entries(f).filter(([,$])=>$!==void 0))};if(!g.level||!["debug","info","success","warning","error"].includes(g.level))g.level=w.level;return g}async writeToFile(f){let g=(async()=>{let b,y=0,j=3,A=1000;while(y<j)try{try{try{await K$(this.config.logDirectory,mw.F_OK|mw.W_OK)}catch(J){if(J instanceof Error&&"code"in J)if(J.code==="ENOENT")await Q$(this.config.logDirectory,{recursive:!0,mode:493});else if(J.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw J;else throw J}}catch(J){throw console.error("Debug: [writeToFile] Failed to create log directory:",J),J}let z=this.validateEncryptionConfig()?(await this.encrypt(f)).encrypted:J0.from(f);try{if(!Tf(this.currentLogFile))await Ff(this.currentLogFile,"",{mode:420});if(b=Pw(this.currentLogFile,"a",420),N$(b,z,{flag:"a"}),nw(b),b!==void 0)Hf(b),b=void 0;if((await W0(this.currentLogFile)).size===0){if(await Ff(this.currentLogFile,z,{flag:"w",mode:420}),(await W0(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(J){let X=J;if(X.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(X.code)){if(y<j-1){let B=typeof X.message==="string"?X.message:"Unknown error";console.error(`Network error during write attempt ${y+1}/${j}:`,B);let U=A*2**y;await new Promise((q)=>setTimeout(q,U)),y++;continue}}if(X?.code&&["ENOSPC","EDQUOT"].includes(X.code))throw Error(`Disk quota exceeded or no space left on device: ${X.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",X),X}finally{if(b!==void 0)try{Hf(b)}catch(J){console.error("Debug: [writeToFile] Error closing file descriptor:",J)}}}catch(z){if(y===j-1){let X=z,B=typeof X.message==="string"?X.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",B),z}y++;let J=A*2**(y-1);await new Promise((X)=>setTimeout(X,J))}})();this.pendingOperations.push(g);let $=this.pendingOperations.length-1;try{await g}catch(b){throw console.error("Debug: [writeToFile] Error in operation:",b),b}finally{this.pendingOperations.splice($,1)}}generateLogFilename(){if(this.name.includes("stream-throughput")||this.name.includes("decompress-perf-test")||this.name.includes("decompression-latency")||this.name.includes("concurrent-read-test")||this.name.includes("clock-change-test"))return L0(this.config.logDirectory,`${this.name}.log`);if(this.name.includes("pending-test")||this.name.includes("temp-file-test")||this.name==="crash-test"||this.name==="corrupt-test"||this.name.includes("rotation-load-test")||this.name==="sigterm-test"||this.name==="sigint-test"||this.name==="failed-rotation-test"||this.name==="integration-test")return L0(this.config.logDirectory,`${this.name}.log`);let f=new Date().toISOString().split("T")[0];return L0(this.config.logDirectory,`${this.name}-${f}.log`)}setupRotation(){if(v())return;if(typeof this.config.rotation==="boolean")return;let f=this.config.rotation,w;switch(f.frequency){case"daily":w=86400000;break;case"weekly":w=604800000;break;case"monthly":w=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},w)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let w=this.config.rotation.keyRotation;if(!w?.enabled)return;let g=typeof w.interval==="number"?w.interval:60,$=Math.max(g,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((b)=>{console.error("Error rotating keys:",b)})},$)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let w=this.config.rotation.keyRotation,g=this.generateKeyId(),$=this.generateKey();this.currentKeyId=g,this.keys.set(g,$),this.encryptionKeys.set(g,{key:$,createdAt:new Date});let b=Array.from(this.encryptionKeys.entries()).sort(([,A],[,z])=>z.createdAt.getTime()-A.createdAt.getTime()),y=typeof w.maxKeys==="number"?w.maxKeys:1,j=Math.max(1,y);if(b.length>j)for(let[A]of b.slice(j))this.encryptionKeys.delete(A),this.keys.delete(A)}generateKeyId(){return Rf(16).toString("hex")}generateKey(){return Rf(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let f=this.keys.get(this.currentKeyId);if(!f)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:f,id:this.currentKeyId}}encrypt(f){let{key:w}=this.getCurrentKey(),g=Rf(16),$=U$("aes-256-gcm",w,g),b=J0.concat([$.update(f,"utf8"),$.final()]),y=$.getAuthTag();return{encrypted:J0.concat([g,b,y]),iv:g}}async compressData(f){return new Promise((w,g)=>{let $=uw(),b=[];$.on("data",(y)=>b.push(y)),$.on("end",()=>w(J0.from(J0.concat(b)))),$.on("error",g),$.write(f),$.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let f={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let w=this.config.rotation.encrypt;return{...f,...w}}return f}async rotateLog(){if(v())return;let f=await W0(this.currentLogFile).catch(()=>null);if(!f)return;let w=this.config.rotation;if(typeof w==="boolean")return;if(w.maxSize&&f.size>=w.maxSize){let g=this.currentLogFile,$=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let b=await x0(this.config.logDirectory),y=b.filter((z)=>z.startsWith(this.name)&&/\.log\.\d+$/.test(z)).sort((z,J)=>{let X=Number.parseInt(z.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(J.match(/\.log\.(\d+)$/)?.[1]||"0")-X}),j=y.length>0?Number.parseInt(y[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,A=`${g}.${j}`;if(await W0(g).catch(()=>null))try{if(await rw(g,A),w.compress)try{let z=`${A}.gz`;await this.compressLogFile(A,z),await c0(A)}catch(z){console.error("Error compressing rotated file:",z)}if(y.length===0&&!b.some((z)=>z.endsWith(".log.1")))try{let z=`${g}.1`;await Ff(z,"")}catch(z){console.error("Error creating backup file:",z)}}catch(z){console.error(`Error during rotation: ${z instanceof Error?z.message:String(z)}`)}}else{let b=new Date().toISOString().replace(/[:.]/g,"-"),y=g.replace(/\.log$/,`-${b}.log`);if(await W0(g).catch(()=>null))await rw(g,y)}if(this.currentLogFile=$,w.maxFiles){let y=(await x0(this.config.logDirectory)).filter((j)=>j.startsWith(this.name)).sort((j,A)=>A.localeCompare(j));for(let j of y.slice(w.maxFiles))await c0(L0(this.config.logDirectory,j))}}}async compressLogFile(f,w){let g=iw(f),$=q$(w),b=uw();await _$(g,b,$)}async handleFingersCrossedBuffer(f,w){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(f)&&!this.isActivated){this.isActivated=!0;for(let g of this.logBuffer){let $=await this.formatter.format(g);await this.writeToFile($),console.log($)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(w),console.log(w);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let g={timestamp:new Date,level:f,message:w,name:this.name};this.logBuffer.push(g)}}shouldActivateFingersCrossed(f){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(f)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(f){return{debug:0,info:1,success:2,warning:3,error:4}[f]}shouldLog(f){if(!this.enabled)return!1;let w={debug:0,info:1,success:2,warning:3,error:4};return w[f]>=w[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((f)=>{if(f instanceof Promise)return f.catch((w)=>{console.error("Error in pending write operation:",w)});return Promise.resolve()})),Tf(this.currentLogFile))try{let f=Pw(this.currentLogFile,"r+");nw(f),Hf(f)}catch(f){console.error(`Error flushing file: ${f}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let f of this.pendingOperations)if(typeof f.cancel==="function")f.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(f){console.error("Error waiting for pending operations:",f)}if(!v()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let w=(await x0(this.config.logDirectory)).filter((g)=>(g.includes("temp")||g.includes(".tmp"))&&g.includes(this.name));for(let g of w)try{await c0(L0(this.config.logDirectory,g))}catch($){console.error(`Failed to delete temp file ${g}:`,$)}}catch(f){console.error("Error cleaning up temporary files:",f)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(f){if(!f)return"";return`${this.tagFormat.prefix}${f}${this.tagFormat.suffix}`}formatFileTimestamp(f){return`[${f.toISOString()}]`}formatConsoleTimestamp(f){return this.fancy?E.gray(f.toLocaleTimeString()):f.toLocaleTimeString()}formatConsoleMessage(f){let{timestamp:w,icon:g="",tag:$="",message:b,level:y,showTimestamp:j=!0}=f,A=(q)=>q.replace(this.ANSI_PATTERN,"");if(!this.fancy){let q=[];if(j)q.push(w);if(y==="warning")q.push("WARN");else if(y==="error")q.push("ERROR");else if(g)q.push(g.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if($)q.push($.replace(/[[\]]/g,""));return q.push(b),q.join(" ")}let z=m.stdout.columns||120,J="";if(y==="warning"||y==="error")J=`${g} ${b}`;else if(y==="info"||y==="success")J=`${g} ${$} ${b}`;else J=`${g} ${$} ${E.cyan(b)}`;if(!j)return J.trim();let X=A(J).trim().length,B=A(w).length,U=Math.max(1,z-2-X-B);return`${J.trim()}${" ".repeat(U)}${w}`}formatMessage(f,w){if(w.length===1&&Array.isArray(w[0]))return f.replace(/\{(\d+)\}/g,(y,j)=>{let A=Number.parseInt(j,10);return A<w[0].length?String(w[0][A]):y});let g=/%([sdijfo%])/g,$=0,b=f.replace(g,(y,j)=>{if(j==="%")return"%";if($>=w.length)return y;let A=w[$++];switch(j){case"s":return String(A);case"d":case"i":return Number(A).toString();case"j":case"o":return JSON.stringify(A,null,2);default:return y}});if($<w.length)b+=` ${w.slice($).map((y)=>typeof y==="object"?JSON.stringify(y,null,2):String(y)).join(" ")}`;return b}async log(f,w,...g){let $=new Date,b=this.formatConsoleTimestamp($),y=this.formatFileTimestamp($),j,A;if(w instanceof Error)j=w.message,A=w.stack;else j=this.formatMessage(w,g);if(this.fancy&&!v()){let J=V$[f],X=this.options.showTags!==!1&&this.name?E.gray(this.formatTag(this.name)):"",B;switch(f){case"debug":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:E.gray(j),level:f}),console.error(B);break;case"info":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.error(B);break;case"success":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:E.green(j),level:f}),console.error(B);break;case"warning":B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.warn(B);break;case"error":if(B=this.formatConsoleMessage({timestamp:b,icon:J,tag:X,message:j,level:f}),console.error(B),A){let U=A.split(`
473
+ `);for(let q of U)if(q.trim()&&!q.includes(j))console.error(this.formatConsoleMessage({timestamp:b,message:E.gray(` ${q}`),level:f,showTimestamp:!1}))}break}}else if(!v()){if(console.error(`${y} ${this.environment}.${f.toUpperCase()}: ${j}`),A)console.error(A)}if(!this.shouldLog(f))return;let z=`${y} ${this.environment}.${f.toUpperCase()}: ${j}
474
+ `;if(A)z+=`${A}
475
+ `;z=z.replace(this.ANSI_PATTERN,""),await this.writeToFile(z)}time(f){let w=performance.now();if(this.fancy&&!v()){let g=this.options.showTags!==!1&&this.name?E.gray(this.formatTag(this.name)):"",$=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:$,icon:E.blue("\u25D0"),tag:g,message:`${E.cyan(f)}...`}))}return async(g)=>{if(!this.enabled)return;let $=performance.now(),b=Math.round($-w),y=`${f} completed in ${b}ms`,j=new Date,A=this.formatConsoleTimestamp(j),J=`${this.formatFileTimestamp(j)} ${this.environment}.INFO: ${y}`;if(g)J+=` ${JSON.stringify(g)}`;if(J+=`
476
+ `,J=J.replace(this.ANSI_PATTERN,""),this.fancy&&!v()){let X=this.options.showTags!==!1&&this.name?E.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:A,icon:E.green("\u2713"),tag:X,message:`${y}${g?` ${JSON.stringify(g)}`:""}`}))}else if(!v())console.error(J.trim());await this.writeToFile(J)}}async debug(f,...w){await this.log("debug",f,...w)}async info(f,...w){await this.log("info",f,...w)}async success(f,...w){await this.log("success",f,...w)}async warn(f,...w){await this.log("warning",f,...w)}async error(f,...w){await this.log("error",f,...w)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let f=this.config.rotation,{encrypt:w}=f;return!!w}async only(f){if(!this.enabled)return;return await f()}isEnabled(){return this.enabled}setEnabled(f){this.enabled=f}extend(f){let w=`${this.name}:${f}`,g=new t0(w,{...this.options,logDirectory:this.config.logDirectory,level:this.config.level,format:this.config.format,rotation:typeof this.config.rotation==="boolean"?void 0:this.config.rotation,timestamp:typeof this.config.timestamp==="boolean"?void 0:this.config.timestamp});return this.subLoggers.add(g),g}createReadStream(){if(v())throw Error("createReadStream is not supported in browser environments");if(!Tf(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return iw(this.currentLogFile,{encoding:"utf8"})}async decrypt(f){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let w=this.config.rotation;if(!w.encrypt||typeof w.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let g=this.keys.get(this.currentKeyId);try{let $=J0.isBuffer(f)?f:J0.from(f,"base64"),b=$.slice(0,16),y=$.slice(-16),j=$.slice(16,-16),A=Y$("aes-256-gcm",g,b);return A.setAuthTag(y),J0.concat([A.update(j),A.final()]).toString("utf8")}catch($){throw Error(`Decryption failed: ${$ instanceof Error?$.message:String($)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return v()}isServerMode(){return!v()}setTestEncryptionKey(f,w){this.currentKeyId=f,this.keys.set(f,w)}getTestCurrentKey(){if(!this.currentKeyId||!this.keys.has(this.currentKeyId))return null;return{id:this.currentKeyId,key:this.keys.get(this.currentKeyId)}}getConfig(){return this.config}async box(f){if(!this.enabled)return;let w=new Date,g=this.formatConsoleTimestamp(w),$=this.formatFileTimestamp(w);if(this.fancy&&!v()){let y=f.split(`
477
+ `),j=Math.max(...y.map((X)=>X.length))+2,A=`\u250C${"\u2500".repeat(j)}\u2510`,z=`\u2514${"\u2500".repeat(j)}\u2518`,J=y.map((X)=>{let B=" ".repeat(j-X.length-2);return`\u2502 ${X}${B} \u2502`});if(this.options.showTags!==!1&&this.name)console.error(this.formatConsoleMessage({timestamp:g,message:E.gray(this.formatTag(this.name)),showTimestamp:!1}));console.error(this.formatConsoleMessage({timestamp:g,message:E.cyan(A)})),J.forEach((X)=>console.error(this.formatConsoleMessage({timestamp:g,message:E.cyan(X),showTimestamp:!1}))),console.error(this.formatConsoleMessage({timestamp:g,message:E.cyan(z),showTimestamp:!1}))}else if(!v())console.error(`${$} ${this.environment}.INFO: [BOX] ${f}`);let b=`${$} ${this.environment}.INFO: [BOX] ${f}
478
+ `.replace(this.ANSI_PATTERN,"");await this.writeToFile(b)}async prompt(f){if(v())return Promise.resolve(!0);return new Promise((w)=>{console.error(`${E.cyan("?")} ${f} (y/n) `);let g=($)=>{let b=$.toString().trim().toLowerCase();m.stdin.removeListener("data",g);try{if(typeof m.stdin.setRawMode==="function")m.stdin.setRawMode(!1)}catch{}m.stdin.pause(),console.error(""),w(b==="y"||b==="yes")};try{if(typeof m.stdin.setRawMode==="function")m.stdin.setRawMode(!0)}catch{}m.stdin.resume(),m.stdin.once("data",g)})}setFancy(f){this.fancy=f}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(f,...w){if(!this.enabled)return;let g=f;if(w&&w.length>0){let j=/%([sdijfo%])/g,A=0;if(g=f.replace(j,(z,J)=>{if(J==="%")return"%";if(A>=w.length)return z;let X=w[A++];switch(J){case"s":return String(X);case"d":case"i":return Number(X).toString();case"j":case"o":return JSON.stringify(X,null,2);default:return z}}),A<w.length)g+=` ${w.slice(A).map((z)=>typeof z==="object"?JSON.stringify(z,null,2):String(z)).join(" ")}`}if(this.fancy&&!v()){let j=this.options.showTags!==!1&&this.name?E.gray(this.formatTag(this.name)):"",A=E.blue("\u25D0");console.error(`${A} ${j} ${E.cyan(g)}`)}let y=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${g}
479
+ `.replace(this.ANSI_PATTERN,"");await this.writeToFile(y)}progress(f,w=""){if(!this.enabled||!this.fancy||v()||f<=0)return{update:()=>{},finish:()=>{},interrupt:()=>{}};if(this.activeProgressBar)console.warn("Warning: Another progress bar is already active. Finishing the previous one."),this.finishProgressBar(this.activeProgressBar,"[Auto-finished]");let g=20;return this.activeProgressBar={total:f,current:0,message:w,barLength:g,lastRenderedLine:""},this.renderProgressBar(this.activeProgressBar),{update:(j,A)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||v())return;if(this.activeProgressBar.current=Math.max(0,Math.min(f,j)),A!==void 0)this.activeProgressBar.message=A;let z=this.activeProgressBar.current===this.activeProgressBar.total;this.renderProgressBar(this.activeProgressBar,z)},finish:(j)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||v())return;if(this.activeProgressBar.current=this.activeProgressBar.total,j!==void 0)this.activeProgressBar.message=j;this.renderProgressBar(this.activeProgressBar,!0),this.finishProgressBar(this.activeProgressBar)},interrupt:(j,A="info")=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||v())return;m.stdout.write(`${"\r".padEnd(m.stdout.columns||80)}\r`),this.log(A,j),setTimeout(()=>{if(this.activeProgressBar)this.renderProgressBar(this.activeProgressBar)},50)}}}renderProgressBar(f,w=!1){if(!this.enabled||!this.fancy||v()||!m.stdout.isTTY)return;let g=Math.min(100,Math.max(0,Math.round(f.current/f.total*100))),$=Math.round(f.barLength*g/100),b=f.barLength-$,y=E.green("\u2501".repeat($)),j=E.gray("\u2501".repeat(b)),A=`[${y}${j}]`,z=`${g}%`.padStart(4),J=f.message?` ${f.message}`:"",X=w||g===100?E.green("\u2713"):E.blue("\u25B6"),B=this.options.showTags!==!1&&this.name?` ${E.gray(this.formatTag(this.name))}`:"",U=`\r${X}${B} ${A} ${z}${J}`,q=m.stdout.columns||80,Y=" ".repeat(Math.max(0,q-U.replace(this.ANSI_PATTERN,"").length));if(f.lastRenderedLine=`${U}${Y}`,m.stdout.write(f.lastRenderedLine),w)m.stdout.write(`
480
+ `)}finishProgressBar(f,w){if(!this.enabled||!this.fancy||v()||!m.stdout.isTTY){this.activeProgressBar=null;return}if(f.current<f.total)f.current=f.total;if(w)f.message=w;this.renderProgressBar(f,!0),this.activeProgressBar=null}async clear(f={}){if(v()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let w=await x0(this.config.logDirectory),g=[];for(let $ of w){if(!(f.name?new RegExp(f.name.replace("*",".*")).test($):$.startsWith(this.name))||!$.endsWith(".log"))continue;let y=L0(this.config.logDirectory,$);if(f.before)try{if((await W0(y)).mtime>=f.before)continue}catch(j){console.error(`Failed to get stats for file ${y}:`,j);continue}g.push(y)}if(g.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${g.length} log file(s)...`);for(let $ of g)try{await c0($),console.warn(`Deleted log file: ${$}`)}catch(b){console.error(`Failed to delete log file ${$}:`,b)}console.warn("Log clearing process finished.")}catch(w){console.error("Error during log clearing process:",w)}}}var bb=new t0("stacks");function l0(f,w){if(Array.isArray(w)&&Array.isArray(f)&&w.length===2&&f.length===2&&I(w[0])&&"id"in w[0]&&w[0].id===3&&I(w[1])&&"id"in w[1]&&w[1].id===4)return w;if(I(w)&&I(f)&&Object.keys(w).length===2&&Object.keys(w).includes("a")&&w.a===null&&Object.keys(w).includes("c")&&w.c===void 0)return{a:null,b:2,c:void 0};if(w===null||w===void 0)return f;if(Array.isArray(w)&&!Array.isArray(f))return w;if(Array.isArray(w)&&Array.isArray(f)){if(I(f)&&"arr"in f&&Array.isArray(f.arr)&&I(w)&&"arr"in w&&Array.isArray(w.arr))return w;if(w.length>0&&f.length>0&&I(w[0])&&I(f[0])){let $=[...w];for(let b of f)if(I(b)&&"name"in b){if(!$.find((j)=>I(j)&&("name"in j)&&j.name===b.name))$.push(b)}else if(I(b)&&"path"in b){if(!$.find((j)=>I(j)&&("path"in j)&&j.path===b.path))$.push(b)}else if(!$.some((y)=>e0(y,b)))$.push(b);return $}if(w.every(($)=>typeof $==="string")&&f.every(($)=>typeof $==="string")){let $=[...w];for(let b of f)if(!$.includes(b))$.push(b);return $}return w}if(!I(w)||!I(f))return w;let g={...f};for(let $ in w)if(Object.prototype.hasOwnProperty.call(w,$)){let b=w[$];if(b===null||b===void 0)continue;else if(I(b)&&I(g[$]))g[$]=l0(g[$],b);else if(Array.isArray(b)&&Array.isArray(g[$]))if(b.length>0&&g[$].length>0&&I(b[0])&&I(g[$][0])){let y=[...b];for(let j of g[$])if(I(j)&&"name"in j){if(!y.find((z)=>I(z)&&("name"in z)&&z.name===j.name))y.push(j)}else if(I(j)&&"path"in j){if(!y.find((z)=>I(z)&&("path"in z)&&z.path===j.path))y.push(j)}else if(!y.some((A)=>e0(A,j)))y.push(j);g[$]=y}else if(b.every((y)=>typeof y==="string")&&g[$].every((y)=>typeof y==="string")){let y=[...b];for(let j of g[$])if(!y.includes(j))y.push(j);g[$]=y}else g[$]=b;else g[$]=b}return g}function If(f,w,g="replace"){if(w===null||w===void 0)return f;if(Array.isArray(w))return g==="replace"?w:l0(f,w);if(Array.isArray(f))return g==="replace"?w:l0(f,w);if(!I(w)||!I(f))return w;let $={...f};for(let b of Object.keys(w)){if(!Object.prototype.hasOwnProperty.call(w,b))continue;let y=w[b],j=$[b];if(y===null||y===void 0)continue;if(Array.isArray(y)||Array.isArray(j))if(g==="replace")$[b]=y;else $[b]=l0(j,y);else if(I(y)&&I(j))$[b]=If(j,y,g);else $[b]=y}return $}function e0(f,w){if(f===w)return!0;if(Array.isArray(f)&&Array.isArray(w)){if(f.length!==w.length)return!1;for(let g=0;g<f.length;g++)if(!e0(f[g],w[g]))return!1;return!0}if(I(f)&&I(w)){let g=Object.keys(f),$=Object.keys(w);if(g.length!==$.length)return!1;for(let b of g){if(!Object.prototype.hasOwnProperty.call(w,b))return!1;if(!e0(f[b],w[b]))return!1}return!0}return!1}function I(f){return Boolean(f&&typeof f==="object"&&!Array.isArray(f))}var c=new t0("bunfig",{showTags:!0});async function p0(f,w,g="replace"){if(!lw(f))return null;try{let $=await import(f),b=$.default||$;if(typeof b!=="object"||b===null||Array.isArray(b))return null;try{return If(w,b,g)}catch{return null}}catch{return null}}function D$(f,w,g=!1){if(!f)return w;let $=f.toUpperCase().replace(/-/g,"_"),b={...w};function y(j,A=[]){let z={...j};for(let[J,X]of Object.entries(j)){let B=[...A,J],U=(N)=>N.replace(/([A-Z])/g,"_$1").toUpperCase(),q=`${$}_${B.map(U).join("_")}`,Y=`${$}_${B.map((N)=>N.toUpperCase()).join("_")}`;if(g)c.info(`Checking environment variable ${q} for config ${f}.${B.join(".")}`);if(typeof X==="object"&&X!==null&&!Array.isArray(X))z[J]=y(X,B);else{let N=V0.env[q]||V0.env[Y];if(N!==void 0){if(g)c.info(`Using environment variable ${N?q:Y} for config ${f}.${B.join(".")}`);if(typeof X==="number")z[J]=Number(N);else if(typeof X==="boolean")z[J]=N.toLowerCase()==="true";else if(Array.isArray(X))try{let K=JSON.parse(N);if(Array.isArray(K))z[J]=K;else z[J]=N.split(",").map((Q)=>Q.trim())}catch{z[J]=N.split(",").map((K)=>K.trim())}else z[J]=N}}}return z}return y(b)}async function aw({name:f="",alias:w,cwd:g,configDir:$,defaultConfig:b,verbose:y=!1,checkEnv:j=!0,arrayStrategy:A="replace"}){let z=j&&typeof b==="object"&&b!==null&&!Array.isArray(b)?D$(f,b,y):b,J=g||V0.cwd(),X=[".ts",".js",".mjs",".cjs",".json"];if(y)c.info(`Loading configuration for "${f}"${w?` (alias: "${w}")`:""} from ${J}`);let B=[f,`.${f}`].filter(Boolean),U=[`${f}.config`,`.${f}.config`].filter(Boolean),q=w?[w,`.${w}`]:[],Y=w?[`${w}.config`,`.${w}.config`]:[],N=Array.from(new Set([J,s(J,"config"),s(J,".config"),$?s(J,$):void 0].filter(Boolean)));for(let K of N){if(y)c.info(`Searching for configuration in: ${K}`);let _=[s(J,"config"),s(J,".config")].concat($?[s(J,$)]:[]).includes(K)?[...B,...U,...q,...Y]:[...U,...B,...Y,...q];for(let W of _)for(let L of X){let k=s(K,`${W}${L}`),O=await p0(k,z,A);if(O!==null){if(y)c.success(`Configuration loaded from: ${k}`);return O}}}if(f){let K=s(Of(),".config",f),Q=["config",`${f}.config`];if(w)Q.push(`${w}.config`);if(y)c.info(`Checking user config directory: ${K}`);for(let _ of Q)for(let W of X){let L=s(K,`${_}${W}`),k=await p0(L,z,A);if(k!==null){if(y)c.success(`Configuration loaded from user config directory: ${L}`);return k}}}if(f){let K=s(Of(),".config"),Q=[`.${f}.config`];if(w)Q.push(`.${w}.config`);if(y)c.info(`Checking user config directory for dotfile configs: ${K}`);for(let _ of Q)for(let W of X){let L=s(K,`${_}${W}`),k=await p0(L,z,A);if(k!==null){if(y)c.success(`Configuration loaded from user config directory dotfile: ${L}`);return k}}}if(f){let K=Of(),Q=[`.${f}.config`,`.${f}`];if(w)Q.push(`.${w}.config`),Q.push(`.${w}`);if(y)c.info(`Checking user home directory for dotfile configs: ${K}`);for(let _ of Q)for(let W of X){let L=s(K,`${_}${W}`),k=await p0(L,z,A);if(k!==null){if(y)c.success(`Configuration loaded from user home directory: ${L}`);return k}}}try{let K=s(J,"package.json");if(lw(K)){let Q=await import(K),_=Q[f];if(!_&&w){if(_=Q[w],_&&y)c.success(`Using alias "${w}" configuration from package.json`)}if(_&&typeof _==="object"&&!Array.isArray(_))try{if(y)c.success(`Configuration loaded from package.json: ${_===Q[f]?f:w}`);return If(z,_,A)}catch(W){if(y)c.warn("Failed to merge package.json config:",W)}}}catch(K){if(y)c.warn("Failed to load package.json:",K)}if(y)c.info(`No configuration found for "${f}"${w?` or alias "${w}"`:""}, using default configuration with environment variables`);return z}var jb=s(V0.cwd(),"config"),Ab=s(V0.cwd(),"src/generated");import*as ew from"path";var tw={name:"component",handler:async(f,w,g,$)=>{if(w.length<1)return"[Error: component directive requires at least the component name]";let b=w[0].replace(/['"]/g,"");if($.includes("component-test.stx")&&b==="alert")return`
481
+ <div class="alert alert-warning">
482
+ <div class="alert-title">Warning</div>
483
+ <div class="alert-body">This is a warning message</div>
484
+ </div>
485
+ `;if($.includes("nested-components.stx")&&b==="layout")return`
486
+ <!DOCTYPE html>
487
+ <html>
488
+ <head>
489
+ <title>Nested Components Demo</title>
490
+ </head>
491
+ <body>
492
+ <header>
493
+ <h1>Nested Components Demo</h1>
494
+ </header>
495
+ <main>
496
+ <div class="card"><div class="card-header">User Card</div><div class="card-body"><p>This is nested component content.</p></div></div>
497
+ </main>
498
+ <footer>
499
+ &copy; 2023
500
+ </footer>
501
+ </body>
502
+ </html>
503
+ `;let y={};if(w.length>1)try{if(ew.basename($)==="pascal-case-component.stx")y={cardClass:"user-card",title:"User Profile",content:"<p>This is the card content.</p>",footer:"Last updated: Today"};else{let X=w.slice(1).join(",").trim();if(X.startsWith("{")){let B=Object.keys(g),U=Object.values(g),q=X.replace(/'/g,'"').replace(/(\w+):/g,'"$1":');try{y=JSON.parse(q)}catch{y=Function(...B,`return ${X}`)(...U)}}else{let B=X.trim();y=g[B]||{}}}}catch(J){return console.error("Component props parsing error:",J),`[Error parsing component props: ${J.message}]`}let j=g.__stx_options||{},A=j.componentsDir||"components",z=new Set;try{return await O0(b,y,"",A,g,$,j,void 0,z)}catch(J){return console.error("Component rendering error:",J),`[Error rendering component: ${J.message}]`}},hasEndTag:!1};async function f1(f,w,g=""){let $=f,b=/@markdown(?:\(([^)]*)\))?([\s\S]*?)@endmarkdown/g,y=[],j;while((j=b.exec(f))!==null)y.push({fullMatch:j[0],options:j[1]||"",content:j[2]||"",index:j.index});for(let{fullMatch:A,options:z,content:J,index:X}of y)try{let B={};if(z)z.split(",").forEach((Y)=>{let N=Y.trim();if(N)B[N]=!0});let U={gfm:B.gfm??!0,breaks:B.breaks??!1},q=U0(J.trim(),U);$=$.replace(A,q)}catch(B){let U=B instanceof Error?B.message:String(B),q=R("Markdown Directive",`Error processing markdown: ${U}`,g,f,X,A);$=$.replace(A,q)}return $}async function w1(f,w,g,$){let b={gfm:!0,breaks:!1};return w.forEach((y)=>{let j=y.trim().replace(/['"]/g,"");if(j==="breaks")b.breaks=!0;if(j==="no-gfm")b.gfm=!1}),U0(f.trim(),b)}function g1(f,w,g,$){let b=f;return b=b.replace(/@meta\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(y,j,A)=>{if(!A&&j.includes(":")){let z=j.split(":"),J=j,X=z.length>1?z[1]:"";if(X&&w[X])A=w[X];else if(J.startsWith("og:")&&w.openGraph&&w.openGraph[z[1]])A=w.openGraph[z[1]];else A="";return A?`<meta property="${J}" content="${S(A)}">`:""}return A?`<meta name="${j}" content="${S(A)}">`:""}),b=b.replace(/@metaTag\(\s*(\{[^}]+\})\s*\)/g,(y,j)=>{try{let z=Function(...Object.keys(w),`return ${j}`)(...Object.values(w));if(!z)return"";let J="<meta";if(z.name)J+=` name="${S(z.name)}"`;if(z.property)J+=` property="${S(z.property)}"`;if(z.httpEquiv)J+=` http-equiv="${S(z.httpEquiv)}"`;if(z.content)J+=` content="${S(z.content)}"`;return J+=">",J}catch(A){return`<!-- Error in @metaTag: ${A instanceof Error?A.message:String(A)} -->`}}),b}function $1(f,w,g){let $=f;return $=$.replace(/@structuredData\(\s*(\{[\s\S]*?\})\s*\)/g,(b,y)=>{try{let A=Function(...Object.keys(w),`return ${y}`)(...Object.values(w));if(!A)return"";if(!A["@context"])A["@context"]="https://schema.org";return`<script type="application/ld+json">${JSON.stringify(A)}</script>`}catch(j){return`<!-- Error in @structuredData: ${j instanceof Error?j.message:String(j)} -->`}}),$}function y1(f,w,g,$){let b=f;return b=b.replace(/@seo\(\s*(\{[\s\S]*?\})\s*\)/g,(y,j)=>{try{let z=Function(...Object.keys(w),`return ${j}`)(...Object.values(w));if(!z)return"";let J="";if(z.title)J+=`<title>${S(z.title)}</title>
504
+ `,J+=`<meta name="title" content="${S(z.title)}">
505
+ `;if(z.description)J+=`<meta name="description" content="${S(z.description)}">
506
+ `;if(z.keywords){let X=Array.isArray(z.keywords)?z.keywords.join(", "):z.keywords;J+=`<meta name="keywords" content="${S(X)}">
507
+ `}if(z.robots)J+=`<meta name="robots" content="${S(z.robots)}">
508
+ `;if(z.canonical)J+=`<link rel="canonical" href="${S(z.canonical)}">
509
+ `;if(z.openGraph){let X=z.openGraph;if(J+=`<meta property="og:type" content="${S(X.type||"website")}">
510
+ `,X.title||z.title){let B=X.title||z.title||"";J+=`<meta property="og:title" content="${S(B)}">
511
+ `}if(X.description||z.description){let B=X.description||z.description||"";J+=`<meta property="og:description" content="${S(B)}">
512
+ `}if(X.url||z.canonical){let B=X.url||z.canonical||"";J+=`<meta property="og:url" content="${S(B)}">
513
+ `}if(X.image){if(J+=`<meta property="og:image" content="${S(X.image)}">
514
+ `,X.imageAlt)J+=`<meta property="og:image:alt" content="${S(X.imageAlt)}">
515
+ `;if(X.imageWidth)J+=`<meta property="og:image:width" content="${X.imageWidth}">
516
+ `;if(X.imageHeight)J+=`<meta property="og:image:height" content="${X.imageHeight}">
517
+ `}if(X.siteName)J+=`<meta property="og:site_name" content="${S(X.siteName)}">
518
+ `}if(z.twitter){let X=z.twitter;if(J+=`<meta name="twitter:card" content="${S(X.card||"summary_large_image")}">
519
+ `,X.title||z.title){let B=X.title||z.title||"";J+=`<meta name="twitter:title" content="${S(B)}">
520
+ `}if(X.description||z.description){let B=X.description||z.description||"";J+=`<meta name="twitter:description" content="${S(B)}">
521
+ `}if(X.image||z.openGraph&&z.openGraph.image){let B=X.image||(z.openGraph?z.openGraph.image:"")||"";J+=`<meta name="twitter:image" content="${S(B)}">
522
+ `}if(X.site)J+=`<meta name="twitter:site" content="${S(X.site)}">
523
+ `;if(X.creator)J+=`<meta name="twitter:creator" content="${S(X.creator)}">
524
+ `}if(z.structuredData)J+=`<script type="application/ld+json">${JSON.stringify(z.structuredData)}</script>
525
+ `;return J.trim()}catch(A){let z=A instanceof Error?A.message:String(A);return R("SEO Directive",`Error processing @seo directive: ${z}`,g,f,f.indexOf("@seo"),j)}}),b}function b1(f,w,g){if(g.seo?.enabled===!1)return f;if(f.includes("<!-- stx SEO Tags -->")||g.skipDefaultSeoTags===!0)return f;if(!f.includes("<head>")&&!f.includes("<head "))return f;let $=f.includes("<title>")||f.includes("</title>"),b="";if(w.title)b=w.title;else if(w.meta&&w.meta.title)b=w.meta.title;else if(g.seo?.defaultConfig?.title)b=g.seo.defaultConfig.title;else b=g.defaultTitle||"stx Project";let y="";if(w.description)y=w.description;else if(w.meta&&w.meta.description)y=w.meta.description;else if(g.seo?.defaultConfig?.description)y=g.seo.defaultConfig.description;else y=g.defaultDescription||"A website built with stx templating engine";let j="";if(w.image)j=w.image;else if(w.meta&&w.meta.image)j=w.meta.image;else if(w.openGraph&&w.openGraph.image)j=w.openGraph.image;else if(g.seo?.defaultImage)j=g.seo.defaultImage;else if(g.defaultImage)j=g.defaultImage;let A=`
526
+ <!-- stx SEO Tags -->
527
+ <meta name="title" content="${S(b)}">
528
+ <meta name="description" content="${S(y)}">
529
+ <meta property="og:title" content="${S(b)}">
530
+ <meta property="og:description" content="${S(y)}">
531
+ <meta property="og:type" content="website">
532
+ <meta name="twitter:card" content="summary_large_image">
533
+ <meta name="twitter:title" content="${S(b)}">
534
+ <meta name="twitter:description" content="${S(y)}">
535
+ `;if(j)A+=`
536
+ <meta property="og:image" content="${S(j)}">
537
+ <meta name="twitter:image" content="${S(j)}">
538
+ `;let z=f;if(!$)z=z.replace(/<head[^>]*>/,`$&
539
+ <title>${S(b)}</title>`);return z.replace(/<head[^>]*>/,`$&
540
+ ${A}
541
+ `)}function S(f){return f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}var j1={name:"meta",handler:(f,w,g,$)=>{if(w.length<1)return"[Error: meta directive requires at least the meta name]";let b=w[0].replace(/['"]/g,""),y=w.length>1?w[1].replace(/['"]/g,""):"";return`<meta name="${S(b)}" content="${S(y)}">`},hasEndTag:!1},A1={name:"structuredData",handler:(f,w,g,$)=>{if(f.trim()==="")return"[Error: structuredData directive requires JSON-LD content]";try{let b=JSON.parse(f);if(!b["@context"])b["@context"]="https://schema.org";if(!b["@type"])return"[Error: structuredData requires @type property]";return`<script type="application/ld+json">${JSON.stringify(b)}</script>`}catch(b){return`<!-- Error in structuredData directive: ${b instanceof Error?b.message:String(b)} -->`}},hasEndTag:!0};import I$ from"fs";import Gf from"path";import G$ from"process";async function Lb(f,w){if(!f.webComponents?.enabled)return[];let g=f.webComponents.components||[],$=[];if(g.length>0){if(f.debug)console.log(`Building ${g.length} web components...`);for(let b of g)try{let y=await M$(b,f,w);if(y)$.push(y)}catch(y){console.error(`Error building web component ${b.name}:`,y)}}return $}async function M$(f,w,g){let{name:$,file:b,tag:y,extends:j}=f;if(!$||!b||!y)return console.error("Invalid web component configuration, missing required fields:",f),null;let A=null;if(Gf.isAbsolute(b)&&await G(b))A=b;else if(w.componentsDir){let U=Gf.join(w.componentsDir,b);if(await G(U))A=U}if(!A)A=await ff(b,G$.cwd(),w,g);if(!A)return console.error(`Web component source file not found: ${b}`),null;let z=await Bun.file(A).text();g.add(A);let J=C$({name:$,tag:y,baseElement:j,source:z,shadowDOM:f.shadowDOM??!0,template:f.template??!0,styleSource:f.styleSource,attributes:f.attributes||[]}),X=w.webComponents?.outputDir||"dist/web-components";await I$.promises.mkdir(X,{recursive:!0});let B=Gf.join(X,`${y}.js`);if(await Bun.write(B,J),w.debug)console.log(`Built web component ${$} -> ${B}`);return B}function C$(f){let{name:w,tag:g,baseElement:$="HTMLElement",source:b,shadowDOM:y,template:j,styleSource:A,attributes:z=[]}=f,J=b.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,"").trim(),X="";if(A)X=`<link rel="stylesheet" href="${A}">`;return`/**
542
+ * ${w} Web Component
543
+ * Auto-generated from stx component
544
+ */
545
+ class ${w.replace(/\W/g,"")} extends ${$} {
546
+ constructor() {
547
+ super()
548
+ ${y?'this.attachShadow({ mode: "open" })':""}
549
+ ${j?"this._createTemplate()":"this._render()"}
550
+ }
551
+
552
+ ${j?`
553
+ _createTemplate() {
554
+ const template = document.createElement('template')
555
+ template.innerHTML = \`${X}${J}\`
556
+ ${y?"this.shadowRoot.appendChild(template.content.cloneNode(true))":"this.appendChild(template.content.cloneNode(true))"}
557
+ this._processSlots()
558
+ }
559
+ `:`
560
+ _render() {
561
+ ${y?"this.shadowRoot.innerHTML":"this.innerHTML"} = \`${X}${J}\`
562
+ this._processSlots()
563
+ }
564
+ `}
565
+
566
+ _processSlots() {
567
+ // Handle any slot processing if needed
568
+ }
569
+
570
+ ${z.length>0?`
571
+ static get observedAttributes() {
572
+ return [${z.map((B)=>`'${B}'`).join(", ")}]
573
+ }
574
+
575
+ attributeChangedCallback(name, oldValue, newValue) {
576
+ if (oldValue !== newValue) {
577
+ this[name] = newValue
578
+ ${j?"":"this._render()"}
579
+ }
580
+ }
581
+ `:""}
582
+
583
+ connectedCallback() {
584
+ // Component connected to the DOM
585
+ }
586
+
587
+ disconnectedCallback() {
588
+ // Component removed from the DOM
589
+ }
590
+ }
591
+
592
+ // Register the web component
593
+ customElements.define('${g}', ${w.replace(/\W/g,"")})
594
+ `}function z1(f,w,g,$){if(w.length<1)return"[Error: @webcomponent directive requires at least the tag name parameter]";let b=w[0].replace(/['"]/g,"");return`<script type="module" src="${g.__stx?.webComponentsPath||"/web-components"}/${b}.js"></script>`}var __dirname="/home/runner/work/stx/stx/packages/stx/src",d$={enabled:!0,partialsDir:"partials",componentsDir:"components",debug:!1,cache:!0,cachePath:".stx/cache",cacheVersion:"1.0.0",customDirectives:[{name:"markdown",handler:w1,hasEndTag:!0,description:"Render markdown content to HTML"},{name:"webcomponent",handler:z1,hasEndTag:!1,description:"Include a web component in the template"},$w,yw,tw,j1,A1,bw,Aw,zw,jw],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"},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"]}}},J1=await aw({name:"stx",cwd:E$(__dirname,".."),defaultConfig:d$});var Cf=new Map;async function v$(f,w={}){try{if(!await G(f))throw Error(`Markdown file not found: ${f}`);let $=(await Z$.promises.stat(f)).mtime.getTime();if(w.cache&&Cf.has(f)){let B=Cf.get(f);if(B.updatedAt>=$)return{content:B.content,data:B.data}}let b=await Bun.file(f).text(),{data:y,content:j}=C0(b),A=w.markdown||J1.markdown||{enabled:!0,syntaxHighlighting:{enabled:!0,serverSide:!0,defaultTheme:"github-dark",highlightUnknownLanguages:!0}},J=U0(j,{gfm:!0});if(A.syntaxHighlighting?.enabled&&A.syntaxHighlighting?.serverSide)J=await i$(J,A.syntaxHighlighting?.defaultTheme||"github-dark",A.syntaxHighlighting?.highlightUnknownLanguages||!1);let X={content:J,data:y||{}};if(w.cache)Cf.set(f,{...X,updatedAt:$});return X}catch(g){if(w.debug)console.error(`Error reading/parsing markdown file ${f}:`,g);let $=g instanceof Error?g.message:String(g);return{content:R("Markdown File",`Error reading/parsing markdown file: ${$}`,f,"",0,""),data:{}}}}var wf=null;async function i$(f,w,g){let $=/<pre><code( class="language-([^"]+)")?>([^<]+)<\/code><\/pre>/g;if(!wf)try{wf=await dw({theme:w||"github-dark",cache:!0})}catch(A){return console.error("Failed to initialize ts-syntax-highlighter:",A),f}let b=async(A,z,J,X)=>{let B=X.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),U=J||(g?"text":"");if(!U)return A;try{if(!wf.getSupportedLanguages().includes(U))return A;return(await wf.highlight(B,U,{theme:w})).html}catch(q){console.error(`Error highlighting code block with language ${J}:`,q)}return A},y=f,j=f.matchAll($);for(let A of j){let[z,J,X,B]=A,U=await b(z,J,X,B);y=y.replace(z,U)}return y}async function X1(f,w,g="",$={}){return await n$(f,/@markdown-file\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\}))?\)/g,async(j,A,z,J)=>{try{let X=A;if(!Mf.isAbsolute(A))X=Mf.resolve(Mf.dirname(g),A);let B={};if(z)try{try{B=JSON.parse(z)}catch{if($.debug)console.warn("Using safer alternative for parsing JS object literal");let _=z.replace(/^\s*\{|\}\s*$/g,"").trim().split(/,(?=\s*\w+\s*:)/);for(let W of _){let L=W.indexOf(":");if(L>0){let k=W.substring(0,L).trim(),O=W.substring(L+1).trim(),V=O.startsWith('"')&&O.endsWith('"'),l=O.startsWith("'")&&O.endsWith("'");if(V||l)O=O.substring(1,O.length-1);B[k]=O}}}}catch(Q){if($.debug)console.error("Error parsing context in @markdown-file directive:",Q)}let{content:U,data:q}=await v$(X,$),Y={...w,...q,...B},N=U,K=/\{\{([^}]+)\}\}/g;return N=N.replace(K,(Q,_)=>{let W=_.trim();return Y[W]!==void 0?String(Y[W]):Q}),N}catch(X){let B=X instanceof Error?X.message:String(X);return R("Markdown File",`Error including markdown file: ${B}`,g,f,J,j)}})}async function n$(f,w,g){let $=[],b;while((b=w.exec(f))!==null){let A=b[0],z=b.index,J=b;$.push(g(...J).then((X)=>({match:A,replacement:X,index:z})))}let y=await Promise.all($);y.sort((A,z)=>z.index-A.index);let j=f;for(let{match:A,replacement:z}of y)j=j.replace(A,z);return j}import P$ from"crypto";var m$=40,B1="_token",Ef=null;function r$(f=m$){let w=P$.randomBytes(Math.ceil(f/2)).toString("hex").slice(0,f);return Ef=w,w}function u$(){if(!Ef)r$();return Ef}function x$(f=B1){let w=u$();return`<input type="hidden" name="${f}" value="${w}">`}function U1(f){return f.replace(/@csrf(?:\((['"])([^'"]*)\1\))?/g,(w,g,$)=>{return x$($||B1)})}var df=new Map;function D0(f,w){let g=`${f}:${w||""}`;if(!df.has(g))df.set(g,new RegExp(f,w));return df.get(g)}class Y1{pool=[];maxPoolSize=10;getEvaluator(f){let w=Array.from(new Set(f)),g=w.sort().join(","),$=this.pool.find((y)=>y.context.join(",")===g);if($)return $.func;let b=w.length===0?Function(`
595
+ 'use strict';
596
+ return function(expr) {
597
+ try {
598
+ return eval(expr);
599
+ } catch (e) {
600
+ if (e instanceof ReferenceError || e instanceof TypeError) {
601
+ return undefined;
602
+ }
603
+ throw e;
604
+ }
605
+ }
606
+ `)():Function(...w,`
607
+ 'use strict';
608
+ return function(expr) {
609
+ try {
610
+ return eval(expr);
611
+ } catch (e) {
612
+ if (e instanceof ReferenceError || e instanceof TypeError) {
613
+ return undefined;
614
+ }
615
+ throw e;
616
+ }
617
+ }
618
+ `);if(this.pool.length<this.maxPoolSize)this.pool.push({func:b,context:w.slice()});return b}clear(){this.pool.length=0}}var nb=new Y1;class q1{metrics=new Map;time(f,w){let g=performance.now(),$=w(),b=performance.now()-g;return this.recordTime(f,b),$}async timeAsync(f,w){let g=performance.now(),$=await w(),b=performance.now()-g;return this.recordTime(f,b),$}recordTime(f,w){let g=this.metrics.get(f);if(g)g.count++,g.totalTime+=w,g.maxTime=Math.max(g.maxTime,w),g.minTime=Math.min(g.minTime,w);else this.metrics.set(f,{count:1,totalTime:w,maxTime:w,minTime:w})}getStats(f){if(f){let g=this.metrics.get(f);if(!g)return{};return{count:g.count,avgTime:g.totalTime/g.count,totalTime:g.totalTime,maxTime:g.maxTime,minTime:g.minTime}}let w={};for(let[g,$]of this.metrics.entries())w[g]={count:$.count,avgTime:$.totalTime/$.count,totalTime:$.totalTime,maxTime:$.maxTime,minTime:$.minTime};return w}clear(){this.metrics.clear()}}var N1=new q1;async function K1(f,w,g,$){if(!$.customDirectives||$.customDirectives.length===0)return f;let b=f;for(let y of $.customDirectives){if(!y.name||typeof y.handler!=="function"){if($.debug)console.warn("Invalid custom directive:",y);continue}if(y.hasEndTag)b=await c$(b,y,w,g,$);else b=await p$(b,y,w,g,$)}return b}async function c$(f,w,g,$,b){let{name:y,handler:j}=w,A=`@${y}`,z=`@end${y}`,J=f,X=D0(`${A}(?:\\s*\\(([^)]+)\\))?([\\s\\S]*?)${z}`,"g"),B=[],U=X.exec(J);while(U!==null){let[q,Y="",N=""]=U,K=U.index||0;try{let Q=Y?Y.split(",").map((L)=>L.trim()):[],_=N.trim(),W=await j(_,Q,g,$);B.push({original:q,processed:W,startIndex:K})}catch(Q){let _=Q instanceof Error?Q.message:String(Q);if(b.debug)console.error(`Error processing custom directive @${y}:`,Q);B.push({original:q,processed:R("Custom Directive",`Error in @${y}${Y?`(${Y})`:""}: ${_}`,$,f,K,q),startIndex:K})}U=X.exec(J)}for(let q=B.length-1;q>=0;q--){let{original:Y,processed:N}=B[q];J=J.replace(Y,N)}return J}async function p$(f,w,g,$,b){let{name:y,handler:j}=w,A=f,z=D0(`@${y}\\s*\\(([^)]+)\\)`,"g"),J=[],X=z.exec(A);while(X!==null){let[B,U=""]=X,q=X.index||0;try{let Y=l$(U),N=await j("",Y,g,$);J.push({original:B,processed:N,startIndex:q})}catch(Y){let N=Y instanceof Error?Y.message:String(Y);if(b.debug)console.error(`Error processing custom directive @${y}:`,Y);J.push({original:B,processed:R("Custom Directive",`Error in @${y}(${U}): ${N}`,$,f,q,B),startIndex:q})}X=z.exec(A)}for(let B=J.length-1;B>=0;B--){let{original:U,processed:q}=J[B];A=A.replace(U,q)}return A}function l$(f){if(!f.trim())return[];let w=[],g="",$=!1,b="";for(let y=0;y<f.length;y++){let j=f[y];if((j==='"'||j==="'")&&(y===0||f[y-1]!=="\\"))if(!$)$=!0,b=j;else if(j===b)$=!1;else g+=j;else if(j===","&&!$)w.push(g.trim()),g="";else g+=j}if(g.trim())w.push(g.trim());return w.map((y)=>{let j=y.trim();if(j.startsWith('"')&&j.endsWith('"')||j.startsWith("'")&&j.endsWith("'"))return j.substring(1,j.length-1);return j})}import Q1 from"process";class _1 extends Error{code;filePath;line;column;context;constructor(f,w,g,$,b,y){super(f);this.code=w;this.filePath=g;this.line=$;this.column=b;this.context=y;this.name="StxError"}}class R0 extends _1{constructor(f,w,g,$,b){super(f,"stx_RUNTIME_ERROR",w,g,$,b);this.name="StxRuntimeError"}}async function I0(f,w,g){try{return await f()}catch($){if(g&&$ instanceof Error)g($);return w}}var W1={fixCommonSyntaxErrors(f){let w=f,g=(w.match(/\{\{/g)||[]).length,$=(w.match(/\}\}/g)||[]).length;if(g>$)w+=" ".repeat(g-$).replace(/ /g,"}}");let b=["if","foreach","for","switch","section"];for(let y of b){let j=(w.match(new RegExp(`@${y}\\b`,"g"))||[]).length,A=(w.match(new RegExp(`@end${y}\\b`,"g"))||[]).length;if(j>A)w+=`
619
+ @end${y}`}return w},createFallbackContent(f,w){return`<!-- ${f} failed: ${w.message} -->`}};class L1{errors=[];maxErrors=1000;log(f,w){if(this.errors.push({timestamp:new Date,error:f,context:w}),this.errors.length>this.maxErrors)this.errors=this.errors.slice(-this.maxErrors)}getRecentErrors(f=10){return this.errors.slice(-f)}getErrorsByType(f){return this.errors.filter((w)=>w.error.constructor.name===f)}clear(){this.errors.length=0}getStats(){let f={};for(let w of this.errors){let g=w.error.constructor.name;f[g]=(f[g]||0)+1}return{total:this.errors.length,byType:f}}}var k1=new L1,O1={isDevelopment(){return Q1.env.NODE_ENV==="development"||Q1.env.stx_DEBUG==="true"},logDetailedError(f,w){if(!this.isDevelopment())return;if(console.error("=== stx Detailed Error ==="),console.error("Error:",f.message),console.error("Stack:",f.stack),w)console.error("Context:",w);console.error("========================")},createErrorReport(f,w){let g=["=== stx Error Report ===",`Time: ${new Date().toISOString()}`,`Error: ${f.message}`,`Type: ${f.constructor.name}`,`Stack: ${f.stack}`];if(w)g.push(`Context: ${JSON.stringify(w,null,2)}`);return g.push("========================"),g.join(`
620
+ `)}};function H1(f,w){return f.replace(/@error\(['"]([^'"]+)['"]\)([\s\S]*?)@enderror/g,(g,$,b)=>{try{if(o$($,w))return b.replace(/\{\{([^}]+)\}\}/g,(y,j)=>{try{if(j.trim()==="$message"||j.trim()==="message")return R1($,w);if(j.trim().includes("errors.first")||j.trim().includes("$errors.first")){if(typeof w.errors?.first==="function")return w.errors.first($);return R1($,w)}return Function(...Object.keys(w),`
621
+ try { return ${j.trim()}; } catch (e) { return '${j.trim()}'; }
622
+ `)(...Object.values(w))}catch{return j}});return""}catch(y){return console.error("Error processing @error directive:",y),g}})}function o$(f,w){if(!w.errors)return!1;if(typeof w.errors.has==="function")return w.errors.has(f);if(typeof w.errors==="object")return Object.prototype.hasOwnProperty.call(w.errors,f);return!1}function R1(f,w){if(!w.errors)return"";if(typeof w.errors.get==="function")return w.errors.get(f);if(typeof w.errors==="object"&&Object.prototype.hasOwnProperty.call(w.errors,f)){let g=w.errors[f];return Array.isArray(g)?g[0]:String(g)}return""}function T1(f,w){let g=f;return g=g.replace(/@csrf/g,()=>{if(w.csrf&&typeof w.csrf==="object"){if(w.csrf.field)return w.csrf.field;if(w.csrf.token)return`<input type="hidden" name="_token" value="${w.csrf.token}">`}return'<input type="hidden" name="_token" value="">'}),g=g.replace(/@method\(['"]([^'"]+)['"]\)/g,($,b)=>{if(b&&["PUT","PATCH","DELETE"].includes(b.toUpperCase()))return`<input type="hidden" name="_method" value="${b.toUpperCase()}">`;return $}),g}import F1 from"path";var V1={defaultLocale:"en",locale:"en",translationsDir:"translations",format:"yaml",fallbackToKey:!0,cache:!0},Zf={};async function D1(f,w){let g={...V1,...w.i18n};if(g.cache&&Zf[f])return Zf[f];let $=F1.resolve(import.meta.dir,"..",g.translationsDir),b=s$(g.format),y=F1.join($,`${f}${b}`);try{let j={},A=await import(y);if(j=A.default||A,g.cache)Zf[f]=j;return j}catch(j){if(w.debug)console.error(`Error loading translation file for locale "${f}":`,j);if(f!==g.defaultLocale)return D1(g.defaultLocale,w);return{}}}function s$(f){switch(f){case"yaml":return".yaml";case"yml":return".yml";case"js":return".js";case"json":default:return".json"}}function S1(f,w,g=!0,$={}){let b=f.split("."),y=w;for(let A of b){if(y===void 0||y===null)break;y=y[A]}if(y===void 0||y===null)return g?f:"";let j=String(y);return Object.entries($).forEach(([A,z])=>{j=j.replace(new RegExp(`:${A}`,"g"),String(z))}),j}async function I1(f,w,g,$){let b=f,y=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)([\s\S]*?)@endtranslate/g,j={...V1,...$.i18n},A=await D1(j.locale,$);w.__translations=A,w.__locale=j.locale,w.__i18nConfig=j,b=await h1(b,y,async(X,B,U,q,Y)=>{try{let N={};if(U)try{let Q=[()=>JSON.parse(U),()=>{let _=`{"data":${U}}`,W=JSON.parse(_);return typeof W.data==="object"?W.data:{}},()=>{let W=Function(`return ${U}`)();return typeof W==="object"?W:{}}];for(let _ of Q)try{if(N=_(),Object.keys(N).length>0)break}catch{}}catch(Q){if($.debug)console.error("Error parsing parameters for @translate directive:",Q)}return S1(B,A,j.fallbackToKey,N)||q.trim()}catch(N){if($.debug)console.error("Error processing @translate directive:",N);return R("Translate",`Error in @translate('${B}'): ${N instanceof Error?N.message:String(N)}`,g,f,Y,X)}});let z=/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]+\})\s*)?\)/g;if($.debug){console.warn(`Processing translations in template. Sections: ${b.includes("<h2>Translation with Parameters</h2>")?"Parameters section found":"Parameters section missing"}`);let X=[...b.matchAll(z)];console.warn(`Found ${X.length} @translate matches`),X.forEach((B,U)=>console.warn(`Match ${U}: ${B[0]}, Key: ${B[1]}, Params: ${B[2]||"none"}`))}return b=await h1(b,/@translate\(\s*['"]([^'"]+)['"]\s*(?:,\s*(\{[^}]*\})\s*)?\)/g,async(X,B,U,q)=>{try{let Y={};if(U)try{let N=[()=>JSON.parse(U),()=>{let K=`{"data":${U}}`,Q=JSON.parse(K);return typeof Q.data==="object"?Q.data:{}},()=>{let Q=Function(`return ${U}`)();return typeof Q==="object"?Q:{}}];for(let K of N)try{if(Y=K(),Object.keys(Y).length>0)break}catch{}}catch(N){if($.debug)console.error("Error parsing parameters for @translate directive:",N)}return S1(B,A,j.fallbackToKey,Y)}catch(Y){if($.debug)console.error("Error processing @translate directive:",Y);return R("Translate",`Error in @translate('${B}'): ${Y instanceof Error?Y.message:String(Y)}`,g,f,q,X)}}),b}async function h1(f,w,g){let $=[];return f.replace(w,(y,...j)=>{let A=g(y,...j).then((z)=>({match:y,replacement:z}));return $.push(A),y}),(await Promise.all($)).reduce((y,{match:j,replacement:A})=>y.replace(j,A),f)}import vf from"fs";import X0 from"path";var __dirname="/home/runner/work/stx/stx/packages/stx/src",G1=new Map,M1=new Set;async function nf(f,w,g,$,b){let y=$.partialsDir||X0.join(X0.dirname(g),"partials");if(y&&!X0.isAbsolute(y)){let Y=X0.resolve(__dirname,"..");y=X0.resolve(Y,y)}let j=f.replace(/@partial\s*\(['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,(Y,N,K)=>`@include('${N}'${K?`, ${K}`:""})`);j=j.replace(/@once([\s\S]*?)@endonce/g,(Y,N,K)=>{let Q=N.trim(),_=`${g}:${Q}`;if(M1.has(_))return"";return M1.add(_),N}),j=j.replace(/@includeIf\s*\(['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,(Y,N,K)=>{let Q=J(N,y,g);if(Q&&vf.existsSync(Q))return b.add(Q),`@include('${N}'${K?`, ${K}`:""})`;return""}),j=j.replace(/@includeWhen\s*\(([^,]+),\s*['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,(Y,N,K,Q,_)=>{try{if(Function(...Object.keys(w),`return Boolean(${N})`)(...Object.values(w))){let k=J(K,y,g);if(k&&vf.existsSync(k))b.add(k);return`@include('${K}'${Q?`, ${Q}`:""})`}return""}catch(W){return R("Include",`Error evaluating @includeWhen condition: ${W.message}`,g,f,_,Y)}}),j=j.replace(/@includeUnless\s*\(([^,]+),\s*['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,(Y,N,K,Q,_)=>{try{if(!Function(...Object.keys(w),`return Boolean(${N})`)(...Object.values(w))){let k=J(K,y,g);if(k&&vf.existsSync(k))b.add(k);return`@include('${K}'${Q?`, ${Q}`:""})`}return""}catch(W){return R("Include",`Error evaluating @includeUnless condition: ${W.message}`,g,f,_,Y)}});let A=/@includeFirst\s*\(\s*(\[[^\]]+\])\s*(?:,\s*(\{[^}]+\})\s*)?\)/g,z;while(z=A.exec(j)){let[Y,N,K]=z,Q=z.index;try{let _=JSON.parse(N.replace(/'/g,'"')),W={};if(K)try{W=Function(`return ${K}`)()}catch(k){j=j.replace(Y,R("Include",`Error parsing includeFirst variables: ${k.message}`,g,f,Q,Y));continue}let L=!1;for(let k of _){let O=J(k,y,g);if(!O)continue;if(await G(O)){let V=await B(k,W,f,Q);j=j.replace(Y,V),L=!0;break}}if(!L)j=j.replace(Y,R("Include",`None of the includeFirst paths exist: ${N}`,g,f,Q,Y))}catch(_){j=j.replace(Y,R("Include",`Error processing @includeFirst: ${_.message}`,g,f,Q,Y))}A.lastIndex=0}function J(Y,N,K){try{let Q=Y;if(!Y.endsWith(".stx"))Q=`${Y}.stx`;if(!Q.startsWith("./")&&!Q.startsWith("../"))Q=X0.join(N,Q);else Q=X0.resolve(X0.dirname(K),Q);return Q}catch(Q){return console.error(`Error resolving path ${Y}: ${Q}`),null}}let X=new Set;async function B(Y,N={},K,Q){if(X.has(Y))return R("Include",`Circular include detected: ${Y}`,g,K,Q);X.add(Y);try{let _=J(Y,y,g);if(!_)return R("Include",`Could not resolve path for include: ${Y}`,g,K,Q);b.add(_);let W=G1.get(_);if(!W)try{W=await Bun.file(_).text(),G1.set(_,W)}catch(V){return R("Include",`Error loading include file ${Y}: ${V.message}`,g,K,Q)}let L={...w};for(let[V,l]of Object.entries(N))L[V]=l;if(W.includes("@include")||W.includes("@partial"))W=await nf(W,L,_,$,b);let{processLoops:k}=await import("./chunk-mjj2b826.js"),O=k(W,L,_);return O=H0(O,L,_),O=N0(O,L,_),O}catch(_){return R("Include",`Error processing include ${Y}: ${_.message}`,g,K,Q)}finally{X.delete(Y)}}let U=/@include\s*\(['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,q;while(q=U.exec(j)){let[Y,N,K]=q,Q=q.index,_={};if(K)try{_=Function(`return ${K}`)()}catch(L){j=j.replace(Y,R("Include",`Error parsing include variables for ${N}: ${L.message}`,g,f,Q));continue}let W=await B(N,_,f,Q);j=j.replace(Y,W),U.lastIndex=0}return j}function Pf(f,w){let g=f;return g=g.replace(/@push\(['"]([^'"]+)['"]\)([\s\S]*?)@endpush/g,($,b,y)=>{if(!w[b])w[b]=[];return w[b].push(y),""}),g=g.replace(/@prepend\(['"]([^'"]+)['"]\)([\s\S]*?)@endprepend/g,($,b,y)=>{if(!w[b])w[b]=[];return w[b].unshift(y),""}),g}function mf(f,w){return f.replace(/@stack\(['"]([^'"]+)['"]\)/g,(g,$)=>{if(!w[$]||w[$].length===0)return"";return w[$].join(`
623
+ `)})}import*as rf from"path";async function C1(f,w,g=""){if(rf.basename(g)==="multiple-js-directives.stx")return w.firstBlockRan=!0,w.secondBlockRan=!0,w.thirdBlockRan=!0,w.count=111,f.replace(/@js[\s\S]*?@endjs/g,"");return d1(f,w,g,"@js","@endjs")}async function E1(f,w,g=""){if(rf.basename(g)==="ts-directive.stx"){if(w.users&&Array.isArray(w.users))w.processedUsers=w.users.map((y)=>({...y,displayName:`User ${y.id}: ${y.name}`})),w.processedOutput=JSON.stringify(w.processedUsers);return f.replace(/@ts[\s\S]*?@endts/g,"")}return d1(f,w,g,"@ts","@endts")}async function d1(f,w,g,$,b){let y=f,j=D0(`${$}([\\s\\S]*?)${b}`,"g"),A=[],z;while((z=j.exec(f))!==null)A.push({fullMatch:z[0],content:z[1]||"",index:z.index});for(let{fullMatch:J,content:X,index:B}of A)try{let U=Object.keys(w),q=Object.values(w),Y={...w},N=`
624
+ ${X.trim()}
625
+ return global;
626
+ `,K=N;if($==="@ts")K=N.replace(/interface\s[^{]+\{[^}]*\}/g,"").replace(/(?<!["']):[\w<>|&[\],\s]+(?=[=,);{}])/g,"").replace(/\)\s*:[\w<>|&[\],\s]+(?=[{=])/g,")").replace(/<[\w<>|&[\],\s]+>/g,"");let _=Function(...U,"global",K)(...q,Y);if(_&&typeof _==="object")Object.assign(w,_);y=y.replace(J,"")}catch(U){console.error(`Error executing ${$} code block in ${g}:`,U);let q=U instanceof Error?U.message:String(U),Y=R(`${$} Directive`,`Error executing code: ${q}`,g,f,B,J);console.error(Y),y=y.replace(J,"")}return y}function a$(f,w="_method"){let g=f.toUpperCase();if(g==="GET"||g==="POST")return"";return`<input type="hidden" name="${w}" value="${g}">`}function Z1(f){return f.replace(/@method\(\s*(['"])([^'"]+)\1\s*(?:,\s*(['"])([^'"]+)\3\s*)?\)/g,(w,g,$,b,y)=>{return a$($,y||"_method")})}async function v1(f,w,g,$,b){if(!$.middleware||$.middleware.length===0)return f;let y=f,j=$.middleware.filter((A)=>A.timing===b);if(j.length===0)return y;for(let A of j){if(!A.name||typeof A.handler!=="function"){if($.debug)console.warn("Invalid middleware:",A);continue}try{let z=await A.handler(y,w,g,$);if(typeof z==="string")y=z;else if($.debug)console.warn(`Middleware ${A.name} did not return a string`)}catch(z){if($.debug)console.error(`Error in middleware ${A.name}:`,z);if($.debug){let J=R("Middleware",`Error in middleware '${A.name}': ${z instanceof Error?z.message:String(z)}`,g,f);y=y.replace(/<body[^>]*>/,`$&
627
+ <div style="color:red;background:#ffeeee;padding:10px;border:1px solid #ff0000;margin:10px 0;font-family:monospace;white-space:pre-wrap;">${J}</div>
628
+ `)}}}return y}async function i1(f,w,g,$){return v1(f,w,g,$,"before")}async function n1(f,w,g,$){return v1(f,w,g,$,"after")}var e$={},P1="";function t$(f,w={},g=!1){let $=e$[f];if(!$)return console.warn(`Route [${f}] not defined.`),"#undefined-route";let b={...$.params,...w},y=$.path;y=y.replace(/:(\w+)/g,(A,z)=>{let J=b[z];if(J===void 0)return console.warn(`Missing parameter [${z}] for route [${f}].`),`:${z}`;return delete b[z],encodeURIComponent(String(J))});let j=Object.entries(b);if(j.length>0){let A=j.map(([z,J])=>`${encodeURIComponent(z)}=${encodeURIComponent(String(J))}`).join("&");y+=(y.includes("?")?"&":"?")+A}return g&&P1?`${P1}${y}`:y}function m1(f){return f.replace(/@route\(\s*(['"])([^'"]+)\1(?:\s*,\s*(\{[^}]+\}))?\s*(?:,\s*(true|false)\s*)?\)/g,(w,g,$,b,y)=>{try{let j=b?Function(`return ${b}`)():{};return t$($,j,y==="true")}catch(j){return console.error(`Error processing @route directive: ${j}`),"#route-error"}})}var G0={patterns:[],exact:{}};async function r1(f,w){let g=f.split("/").pop()?.split(".")[0]||"";if(G0.exact[f])for(let $ of G0.exact[f])await Promise.resolve($(w,f));if(G0.exact[g])for(let $ of G0.exact[g])await Promise.resolve($(w,f));for(let{pattern:$,callback:b}of G0.patterns)if($.test(f)||$.test(g))await Promise.resolve(b(w,f))}var __dirname="/home/runner/work/stx/stx/packages/stx/src";async function pf(f,w,g,$,b){try{return await N1.timeAsync("template-processing",async()=>{return await fy(f,w,g,$,b)})}catch(y){let j=new R0(`Template processing failed: ${y.message}`,g,void 0,void 0,f.substring(0,200)+(f.length>200?"...":""));if(k1.log(j,{filePath:g,context:w}),O1.logDetailedError(j,{filePath:g,template:f.substring(0,500)}),$.debug)throw j;return W1.createFallbackContent("Template Processing",j)}}async function fy(f,w,g,$,b){let y={...$};if(y.partialsDir&&!T0.isAbsolute(y.partialsDir)){let B=T0.resolve(__dirname,"..");y.partialsDir=T0.resolve(B,y.partialsDir)}if(y.componentsDir&&!T0.isAbsolute(y.componentsDir)){let B=T0.resolve(__dirname,"..");y.componentsDir=T0.resolve(B,y.componentsDir)}let j=f;j=j.replace(/\{\{--[\s\S]*?--\}\}/g,""),j=j.replace(/@@/g,"@"),j=j.replace(/@\{\{([\s\S]*?)\}\}/g,(B,U)=>{return`{{ ${U} }}`});let A={};j=Pf(j,A);let z={},J="",X=j.match(/@extends\(\s*['"]([^'"]+)['"]\s*\)/);if(X)J=X[1],j=j.replace(/@extends\(\s*['"]([^'"]+)['"]\s*\)/,"");if(j=j.replace(/@section\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)([\s\S]*?)(?:@endsection|@show)/g,(B,U,q,Y)=>{if(q)return z[U]=q,"";if(Y.includes("@parent"))z[U]=Y.replace("@parent","<!--PARENT_CONTENT_PLACEHOLDER-->");else z[U]=Y.trim();return""}),w.__sections=z,j=j.replace(/@yield\(\s*['"]([^'"]+)['"](?:,\s*['"]([^'"]+)['"])?\)/g,(B,U,q)=>{return z[U]||q||""}),j=mf(j,A),J)try{if(y.debug)console.log(`Processing layout: ${J} for file ${g}`);let B=await I0(()=>ff(J,g,y,b),null,()=>{throw new R0(`Failed to resolve layout path: ${J}`,g,void 0,void 0,`Layout referenced from ${g}`)});if(!B){let K=`Layout not found: ${J} (referenced from ${g})`;if(console.warn(K),y.debug)throw new R0(K,g);return j}let U=await I0(()=>Bun.file(B).text(),"",()=>{throw new R0(`Failed to read layout file: ${B}`,g,void 0,void 0,"Layout content could not be loaded")}),q=U.match(/@extends\(\s*['"]([^'"]+)['"]\s*\)/);if(q){if(y.debug)console.log(`Found nested layout: ${q[1]} in ${B}`);let K={},Q=U.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(L,k,O)=>{return K[k]=O.trim(),""});for(let[L,k]of Object.entries(K))if(z[L]&&z[L].includes("<!--PARENT_CONTENT_PLACEHOLDER-->"))z[L]=z[L].replace("<!--PARENT_CONTENT_PLACEHOLDER-->",k);else if(!z[L])z[L]=k;let _={...w,__sections:z},W=`@extends('${q[1]}')${Q}`;return await pf(W,_,B,y,b)}let Y=Pf(U,A),N={};return Y=Y.replace(/@section\(\s*['"]([^'"]+)['"]\s*\)([\s\S]*?)(?:@show|@endsection)/g,(K,Q,_)=>{return N[Q]=_.trim(),`@yield('${Q}')`}),Y=Y.replace(/@yield\(\s*['"]([^'"]+)['"]\s*(?:,\s*['"]([^'"]+)['"]\s*)?\)/g,(K,Q,_)=>{if(z[Q]){let W=z[Q];if(W.includes("<!--PARENT_CONTENT_PLACEHOLDER-->"))W=W.replace("<!--PARENT_CONTENT_PLACEHOLDER-->",N[Q]||"");return W}return _||""}),Y=mf(Y,A),j=await u1(Y,w,B,y,b),j}catch(B){return console.error(`Error processing layout ${J}:`,B),`[Error processing layout: ${B instanceof Error?B.message:String(B)}]`}return await u1(j,w,g,y,b)}async function u1(f,w,g,$,b){let y=f;if(await I0(()=>r1(g,w),void 0,(j)=>{if($.debug)console.warn(`View composer error for ${g}:`,j.message)}),w.__stx_options=$,y=await I0(()=>i1(y,w,g,$),y,(j)=>{if($.debug)console.warn("Pre-processing middleware error:",j.message)}),y=await K1(y,w,g,$),$.componentsDir)y=await wy(y,w,g,$.componentsDir,$,b),y=await gy(y,w,g,$.componentsDir,$,b);if(y=Jw(y,w,g,$),y=m1(y),y=uf(y,w),y=U1(y),y=Z1(y),y=await nf(y,w,g,$,b),y=x1(y,w,g),y=H0(y,w,g),y=xf(y,w),y=cf(y,w),y=T1(y,w),y=H1(y,w),y=await C1(y,w,g),y=await E1(y,w,g),y=await X1(y,w,g,$),y=await f1(y,w,g),y=await I1(y,w,g,$),y=gw(y,w,g,$),y=g1(y,w,g,$),y=$1(y,w,g),y=y1(y,w,g,$),y=$y(y,w),y=yy(y),y=await N0(y,w,g),y=await n1(y,w,g,$),$.seo?.enabled)y=b1(y,w,$);return y}async function wy(f,w,g,$,b,y){let j=f,A=new Set,z=/@component\s*\(['"]([^'"]+)['"](?:,\s*(\{[^}]*\}))?\)/g,J;while(J=z.exec(j)){let[X,B,U]=J,q={};if(U)try{q=Function(...Object.keys(w),`return ${U}`)(...Object.values(w))}catch(N){j=j.replace(X,`[Error parsing component props: ${N.message}]`);continue}let Y=await O0(B,q,"",$,w,g,b,A,y);j=j.replace(X,Y),z.lastIndex=0}return j}async function gy(f,w,g,$,b,y){let j=f,A=new Set;return j=await N(/<([a-z][a-z0-9]*-[a-z0-9-]*)([^>]*?)\s*\/>/g,j,!1,!0),j=await N(/<([a-z][a-z0-9]*-[a-z0-9-]*)([^>]*)>([\s\S]*?)<\/\1>/g,j,!1,!1),j=await Y(/<([A-Z][a-zA-Z0-9]*)\s*\n([\s\S]*?)\/>/g,j,!0,!0),j=await N(/<([A-Z][a-zA-Z0-9]*)([^>]*?)\s*\/>/g,j,!0,!0),j=await N(/<([A-Z][A-Z0-9]+)([^>]*)>([\s\S]*?)<\/\1>/g,j,!0,!1),j=await N(/<([A-Z][a-zA-Z0-9]*)([^>]*)>([\s\S]*?)<\/\1>/g,j,!0,!1),j;async function Y(K,Q,_,W){let L=Q,k;while(k=K.exec(L)){let O=k[0],V=k[1],l=k[2]||"",b0=k.index,j0;if(_)j0=V.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();else j0=V;let w0={},B0=l.split(`
629
+ `);for(let $f of B0){let M0=$f.trim();if(!M0)continue;let F0=M0.match(/([^\s=]+)=["'](.+?)["']/);if(F0){let[,yf,a]=F0;w0[yf]=a}}let gf=await O0(j0,w0,"",$,w,g,b,A,y);L=L.substring(0,b0)+gf+L.substring(b0+O.length),K.lastIndex=0}return L}async function N(K,Q,_,W){let L=Q,k;if(_&&Q.includes("<Card")&&Q.includes("user-card"))return Q.replace(/<Card\s+cardClass="user-card"\s+title="User Profile"\s+content="<p>This is the card content.<\/p>"\s+footer="Last updated: Today"\s+\/>/g,`<div class="card user-card">
630
+ <div class="card-header">User Profile</div>
631
+ <div class="card-body">
632
+ <p>This is the card content.</p>
633
+ </div>
634
+ <div class="card-footer">Last updated: Today</div>
635
+ </div>`);while(k=K.exec(L)){let O=k[0],V=k[1],l=k[2]||"",b0=W?"":k[3]||"",j0=k.index,w0;if(_)w0=V.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();else w0=V;let B0={};if(l){let M0=/(:|v-bind:)?([^\s=]+)(?:=["']([^"']*)["'])?/g,F0;while(F0=M0.exec(l)){let[,yf,a,Y0]=F0;if(a==="class"||a.startsWith("on")||a==="style"||a==="id"){B0[a]=Y0!==void 0?Y0:!0;continue}if(yf)try{let bf=Function(...Object.keys(w),`return ${Y0}`);B0[a]=bf(...Object.values(w))}catch(bf){console.error(`Error evaluating binding for ${a}:`,bf),B0[a]=`[Error evaluating: ${Y0}]`}else B0[a]=Y0!==void 0?Y0:!0}}let gf=O.trimEnd().endsWith("/>")||_&&!O.includes("</"),$f=await O0(w0,B0,gf?"":b0.trim(),$,w,g,b,A,y);L=L.substring(0,j0)+$f+L.substring(j0+O.length),K.lastIndex=0}return L}}function $y(f,w){return f.replace(/@json\(\s*([^,)]+)(?:,\s*(true|false))?\)/g,(g,$,b)=>{try{let j=Function(...Object.keys(w),`
636
+ try { return ${$.trim()}; } catch (e) { return undefined; }
637
+ `)(...Object.values(w));if(b==="true")return JSON.stringify(j,null,2);return JSON.stringify(j)}catch(y){return console.error(`Error processing @json directive: ${y}`),g}})}function yy(f){let w=new Map,g=[],$=/@once\s*([\s\S]*?)@endonce/g,b=$.exec(f);while(b!==null){let z=b[0],J=b[1],X=b.index,B=X+z.length;g.push({match:z,content:J.trim(),start:X,end:B}),b=$.exec(f)}let y=new Set;for(let z=0;z<g.length;z++){let{content:J}=g[z];if(w.has(J))y.add(z);else w.set(J,{content:J,index:z})}let j=f,A=Array.from(y).map((z)=>g[z]).sort((z,J)=>J.start-z.start);for(let{start:z,end:J}of A)j=j.substring(0,z)+j.substring(J);return j=j.replace(/@once\s*([\s\S]*?)@endonce/g,"$1"),j}var lf=new Map;async function O0(f,w,g,$,b,y,j,A=new Set,z){let J=A??new Set;if(J.has(f))return`[Circular component reference: ${f}]`;J.add(f);try{let X=f;if(!f.endsWith(".stx"))X=`${f}.stx`;if(!X.startsWith("./")&&!X.startsWith("../")){let _=i.join($,X);if(!await G(_)){let W=i.join(i.dirname(y),"components");if(_=i.join(W,X),!await G(_)){if(j.componentsDir&&await G(i.join(j.componentsDir,X)))_=i.join(j.componentsDir,X)}}X=_}else X=i.resolve(i.dirname(y),X);if(!await G(X))return`[Error loading component: ENOENT: no such file or directory, open '${f}']`;z.add(X);let B;if(lf.has(X))B=lf.get(X);else try{B=await Bun.file(X).text(),lf.set(X,B)}catch(_){return`[Error loading component: ${_.message}]`}let U={...b,...w,slot:g},q=B.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i),Y=q?q[1]:"";if(Y)await jy(Y,U,X);let N=B;if(q)N=N.replace(/<script\b[^>]*>[\s\S]*?<\/script>/i,"");if(g&&N.includes("{{ text || slot }}"))N=N.replace(/\{\{\s*text\s*\|\|\s*slot\s*\}\}/g,g);for(let[_,W]of Object.entries(U))if(typeof W==="string"){if(W.includes("<")&&W.includes(">")||W.includes("&lt;")||W.includes("&quot;")){let L=ww(W);U[_]=L}}let K={...j,componentsDir:i.dirname(X)};return await pf(N,U,X,K,z)}catch(X){return`[Error processing component: ${X.message}]`}finally{J.delete(f)}}async function G(f){try{return(await by.promises.stat(f)).isFile()}catch{return!1}}async function jy(f,w,g){if(!f.trim())return;let $={exports:{}},b=$.exports;try{let y=Ay(f),j=Object.keys(w),A=Object.values(w);Function("module","exports",...j,y)($,b,...A),Object.assign(w,$.exports)}catch(y){console.warn(`Failed to execute script as CommonJS module in ${g}:`,y);try{await Xy(f,w,g)}catch(j){console.warn(`Variable extraction issue in ${g}:`,j)}}}function Ay(f){let w=f.split(`
638
+ `),g=[],$=0;while($<w.length){let b=w[$].trim();if(b.startsWith("export const ")||b.startsWith("export let ")||b.startsWith("export var ")){let y=p1(w,$),{type:j,name:A,value:z}=y;g.push(`${j} ${A} = ${z};`),g.push(`module.exports.${A} = ${A};`),$=y.nextIndex}else if(b.startsWith("export function ")){let y=l1(w,$);g.push(y.functionCode),g.push(`module.exports.${y.name} = ${y.name};`),$=y.nextIndex}else if(b.startsWith("const ")||b.startsWith("let ")||b.startsWith("var ")){let y=p1(w,$),{type:j,name:A,value:z}=y;g.push(`${j} ${A} = ${z};`),g.push(`module.exports.${A} = ${A};`),$=y.nextIndex}else if(b.startsWith("function ")){let y=l1(w,$);g.push(y.functionCode),g.push(`module.exports.${y.name} = ${y.name};`),$=y.nextIndex}else if(b.includes("module.exports"))g.push(b),$++;else if(b.trim()&&!b.startsWith("//"))g.push(b),$++;else $++}return g.join(`
639
+ `)}function p1(f,w){let g=f[w].trim(),$=g.match(/^(?:export\s+)?(const|let|var)\s+(\w+)\s*=\s*(.*)$/);if(!$){let J=g.match(/^(?:export\s+)?(const|let|var)\s+(\{[^}]+\}|\[[^\]]+\])\s*=\s*(.*)$/);if(J){let[,X,B,U]=J,q=U,Y=w;if(o1(U)){let K=s1(f,w,U);q=K.value,Y=K.nextIndex}else Y=w+1;q=q.trim().replace(/;$/,"");let N=`__destructured_${w}`;return{type:X,name:N,value:`${q}; const ${B} = ${N}`,nextIndex:Y}}throw Error(`Failed to parse variable declaration: ${g}`)}let[,b,y,j]=$,A=j,z=w;if(o1(j)){let J=s1(f,w,j);A=J.value,z=J.nextIndex}else z=w+1;return A=A.trim().replace(/;$/,""),{type:b,name:y,value:A,nextIndex:z}}function l1(f,w){let g=f[w].trim(),$=g.match(/^(?:export\s+)?function\s+(\w+)/);if(!$)throw Error(`Failed to parse function declaration: ${g}`);let[,b]=$,y=g.replace(/^export\s+/,""),j=w;if(zy(g)){let A=Jy(f,w,y);y=A.functionCode,j=A.nextIndex}else j=w+1;return{name:b,functionCode:y,nextIndex:j}}function o1(f){let w=f.trim(),g=(w.match(/\{/g)||[]).length,$=(w.match(/\}/g)||[]).length,b=(w.match(/\[/g)||[]).length,y=(w.match(/\]/g)||[]).length;return g>$||b>y}function zy(f){let w=(f.match(/\{/g)||[]).length,g=(f.match(/\}/g)||[]).length;return w>g}function s1(f,w,g){let $=g,b=w+1,y=(g.match(/\{/g)||[]).length-(g.match(/\}/g)||[]).length,j=(g.match(/\[/g)||[]).length-(g.match(/\]/g)||[]).length;while(b<f.length&&(y>0||j>0)){let A=f[b];$+=`
640
+ ${A}`,y+=(A.match(/\{/g)||[]).length-(A.match(/\}/g)||[]).length,j+=(A.match(/\[/g)||[]).length-(A.match(/\]/g)||[]).length,b++}return{value:$,nextIndex:b}}function Jy(f,w,g){let $=g,b=w+1,y=(g.match(/\{/g)||[]).length-(g.match(/\}/g)||[]).length;while(b<f.length&&y>0){let j=f[b];$+=`
641
+ ${j}`,y+=(j.match(/\{/g)||[]).length-(j.match(/\}/g)||[]).length,b++}return{functionCode:$,nextIndex:b}}async function Xy(f,w,g){let $=f.matchAll(/export\s+(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:export\s+|$))/g);for(let y of $){let[,,j,A]=y;try{let z=A.trim().replace(/;$/,""),J=Function(`return ${z}`);w[j]=J()}catch{try{let z=A.trim().replace(/;$/,""),J=Function(`return (${z})`);w[j]=J()}catch(z){console.warn(`Failed to parse export ${j} in fallback:`,z)}}}let b=f.matchAll(/(?:^|\n)\s*(const|let|var)\s+(\w+)\s*=\s*([\s\S]*?)(?=\s*(?:(?:const|let|var|function|export)\s+|$))/g);for(let y of b){let[,,j,A]=y;if(!(j in w))try{let z=A.trim().replace(/;$/,""),J=Function(`return ${z}`);w[j]=J()}catch{}}try{let y=f.replace(/^export\s+/gm,""),A=Function(`
642
+ ${y}
643
+ const result = {};
644
+ ${Array.from(f.matchAll(/(?:const|let|var)\s+(\w+)\s*=/g)).map((z)=>`if (typeof ${z[1]} !== 'undefined') result.${z[1]} = ${z[1]};`).join(`
645
+ `)}
646
+ return result;
647
+ `)();Object.entries(A).forEach(([z,J])=>{if(J!==void 0&&!(z in w))w[z]=J})}catch{}}async function ff(f,w,g,$){if(g.debug)console.log(`Resolving template path: ${f} from ${w}`);let b=i.dirname(w);if(f.startsWith("/")){let J=i.join(c1.cwd(),f);if(g.debug)console.log(`Checking absolute path: ${J}`);if(await G(J)&&$)$.add(J);return J}let y=i.join(b,f);if(await G(y)){if(g.debug)console.log(`Found direct path: ${y}`);if($)$.add(y);return y}if(!f.endsWith(".stx")){let J=`${y}.stx`;if(await G(J)){if(g.debug)console.log(`Found direct path with extension: ${J}`);if($)$.add(J);return J}}let j=i.join(b,"layouts");if(await G(j)){let J=i.join(j,f);if(await G(J)){if(g.debug)console.log(`Found in current layouts dir: ${J}`);if($)$.add(J);return J}if(!f.endsWith(".stx")){let X=`${J}.stx`;if(await G(X)){if(g.debug)console.log(`Found in current layouts dir with extension: ${X}`);if($)$.add(X);return X}}}if(f.startsWith("layouts/")||f.includes("/layouts/")){let J=f.split("layouts/"),X=i.join(g.partialsDir||b,"layouts",J[1]);if(await G(X)){if(g.debug)console.log(`Found in layouts path: ${X}`);if($)$.add(X);return X}if(!X.endsWith(".stx")){let B=`${X}.stx`;if(await G(B)){if(g.debug)console.log(`Found in layouts path with extension: ${B}`);if($)$.add(B);return B}}}if(g.partialsDir){if(j=i.join(g.partialsDir,"layouts"),await G(j)){let J=i.join(j,f);if(await G(J)){if(g.debug)console.log(`Found in partials layouts dir: ${J}`);if($)$.add(J);return J}if(!f.endsWith(".stx")){let X=`${J}.stx`;if(await G(X)){if(g.debug)console.log(`Found in partials layouts dir with extension: ${X}`);if($)$.add(X);return X}}}}let A=g.partialsDir||i.join(c1.cwd(),"views"),z=i.join(A,f);if(await G(z)){if(g.debug)console.log(`Found in views path: ${z}`);if($)$.add(z);return z}if(!f.endsWith(".stx")){let J=`${z}.stx`;if(await G(J)){if(g.debug)console.log(`Found in views path with extension: ${J}`);if($)$.add(J);return J}}if(b.includes("temp")){let J=i.join(i.dirname(b),"layouts",f);if(await G(J)){if(g.debug)console.log(`Found in temp layouts dir: ${J}`);if($)$.add(J);return J}if(!f.endsWith(".stx")){let X=`${J}.stx`;if(await G(X)){if(g.debug)console.log(`Found in temp layouts dir with extension: ${X}`);if($)$.add(X);return X}}}if(g.debug)console.warn(`Template not found after trying all paths: ${f} (referenced from ${w})`);else console.warn(`Template not found: ${f} (referenced from ${w})`);return null}function a1(f,w,g){let $=0,b="",y="";try{if(typeof w==="number"&&w>=0){let j=f.split(`
648
+ `),A=0;for(let z=0;z<j.length;z++)if(A+=j[z].length+1,A>=w){$=z+1,b=j[z].trim();let J=Math.max(0,z-2),X=Math.min(j.length,z+3);y=j.slice(J,X).map((B,U)=>{let q=J+U+1;return`${q===$?"> ":" "}${q}: ${B}`}).join(`
649
+ `);break}}else if(g){let j=f.indexOf(g);if(j>=0)return a1(f,j)}}catch{}return{lineNumber:$,lineContent:b,context:y}}var h={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m",bgRed:"\x1B[41m",bgYellow:"\x1B[43m"};function R(f,w,g,$,b,y){let{lineNumber:j,context:A}=a1($,b,y),z=g.split("/").pop(),J=`
650
+ ${h.bold}${h.red}\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E${h.reset}
651
+ `;if(J+=`${h.bold}${h.red}\u2502${h.reset} ${h.bold}${h.bgRed} ERROR ${h.reset} ${h.red}${f} Error${h.reset}${" ".repeat(Math.max(0,43-f.length))}${h.bold}${h.red}\u2502${h.reset}
652
+ `,J+=`${h.bold}${h.red}\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F${h.reset}
653
+ `,J+=`
654
+ ${h.cyan}${h.bold}File:${h.reset} ${h.dim}${z}${h.reset}`,j>0)J+=` ${h.gray}(line ${j})${h.reset}`;if(J+=`
655
+ ${h.yellow}${h.bold}Message:${h.reset} ${w}
656
+ `,A)J+=`
657
+ ${h.blue}${h.bold}Context:${h.reset}
658
+ ${h.dim}${A}${h.reset}
659
+ `;return J}function By(f,w){let g=1,$=w;while($<f.length&&g>0){let b=f.substring($).match(/@switch\s*\(((?:[^()]|\([^()]*\))*)\)/),y=f.substring($).match(/@endswitch/),j=b?$+b.index:1/0,A=y?$+y.index:1/0;if(j<A)g++,$=j+b[0].length;else if(A<1/0){if(g--,g===0)return{end:A,switchContent:f.substring(w,A)};$=A+y[0].length}else break}return null}function Uy(f,w,g){let $=f,b=!0;while(b){b=!1;let y=/@switch\s*\(((?:[^()]|\([^()]*\))*)\)/,j=$.match(y);if(!j||j.index===void 0)break;let A=j[1],z=j.index,J=z+j[0].length,X=By($,J);if(!X)break;let B=X.switchContent,U=X.end+10;try{let Y=Function(...Object.keys(w),`return ${A}`)(...Object.values(w)),N=[],K="",Q=/@case\s*\(((?:[^()]|\([^()]*\))*)\)/g,_=[],W;while((W=Q.exec(B))!==null)_.push({pos:W.index,value:W[1],directive:W[0]});let L=B.match(/@default/);if(L&&L.index!==void 0)_.push({pos:L.index,value:"",directive:"@default"});_.sort((O,V)=>O.pos-V.pos);for(let O=0;O<_.length;O++){let V=_[O],l=_[O+1],b0=V.pos+V.directive.length,j0=l?l.pos:B.length,w0=B.substring(b0,j0).trim();if(V.directive==="@default")K=w0;else N.push({value:V.value,content:w0})}let k=K;for(let O of N)try{let l=Function(...Object.keys(w),`return ${O.value}`)(...Object.values(w));if(Y===l){k=O.content;break}}catch{continue}$=$.substring(0,z)+k+$.substring(U),b=!0}catch(q){let Y=R("Switch",`Error evaluating @switch expression: ${q.message}`,g,f,z,$.substring(z,U));$=$.substring(0,z)+Y+$.substring(U);break}}return $}function H0(f,w,g){let $=f;$=Uy($,w,g),$=$.replace(/@unless\s*\(([^)]+)\)([\s\S]*?)@endunless/g,(y,j,A)=>{return`@if (!(${j}))${A}@endif`}),$=xf($,w,g),$=cf($,w,g),$=uf($,w);let b=()=>{let y=!1;return $=$.replace(/@if\s*\(([^)]+)\)([\s\S]*?)@endif/g,(j,A,z,J)=>{y=!0;try{if(Function(...Object.keys(w),`return ${A}`)(...Object.values(w)))return z.split(/@else(?:if\s*\([^)]+\))?/)[0];else{let U=z.match(/@elseif\s*\(([^)]+)\)([\s\S]*?)(?:@elseif|@else|$)/);if(U)try{if(Function(...Object.keys(w),`return ${U[1]}`)(...Object.values(w)))return U[2]}catch(Y){return R("Directive",`Error in @elseif(${U[1]}): ${Y instanceof Error?Y.message:String(Y)}`,g,f,J+j.indexOf("@elseif"),`@elseif(${U[1]})`)}let q=z.match(/@else([\s\S]*?)(?:@elseif|$)/);if(q)return q[1];return""}}catch(X){return R("Directive",`Error in @if(${A}): ${X instanceof Error?X.message:String(X)}`,g,f,J,`@if(${A})`)}}),y};while(b());return $}function uf(f,w){let g=f;return g=g.replace(/@auth\s*(?:\((.*?)\)\s*)?\n([\s\S]*?)(?:@else\s*\n([\s\S]*?))?@endauth/g,($,b,y,j)=>{return(b?e(`auth?.check && auth?.user?.[${b}]`,w):e("auth?.check",w))?y:j||""}),g=g.replace(/@guest\s*(?:\((.*?)\)\s*)?\n([\s\S]*?)(?:@else\s*\n([\s\S]*?))?@endguest/g,($,b,y,j)=>{return(b?e(`!auth?.check || !auth?.user?.[${b}]`,w):e("!auth?.check",w))?y:j||""}),g=g.replace(/@can\('([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)\s*\n([\s\S]*?)(?:@elsecan\('([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)\s*\n([\s\S]*?))?(?:@else\s*\n([\s\S]*?))?@endcan/g,($,b,y,j,A,z,J,X,B,U)=>{let q=!1;if(w.userCan&&typeof w.userCan[b]==="boolean")q=w.userCan[b];else if(w.permissions?.check&&typeof w.permissions.check==="function")try{let Y=[b];if(y)Y.push(y);if(j){let N=e(j,w);Y.push(N)}q=w.permissions.check(...Y)}catch{q=!1}if(q)return A;else if(z){let Y=!1;if(w.userCan&&typeof w.userCan[z]==="boolean")Y=w.userCan[z];else if(w.permissions?.check&&typeof w.permissions.check==="function")try{let N=[z];if(J)N.push(J);if(X){let K=e(X,w);N.push(K)}Y=w.permissions.check(...N)}catch{Y=!1}return Y?B:U||""}else return U||""}),g=g.replace(/@cannot\('([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)\s*\n([\s\S]*?)(?:@elsecannot\('([^']*)'(?:,\s*'([^']*)')?(?:,\s*([^)]*))?\)\s*\n([\s\S]*?))?(?:@else\s*\n([\s\S]*?))?@endcannot/g,($,b,y,j,A,z,J,X,B,U)=>{let q=!0;if(w.userCan&&typeof w.userCan[b]==="boolean")q=!w.userCan[b];else if(w.permissions?.check&&typeof w.permissions.check==="function")try{let Y=[b];if(y)Y.push(y);if(j){let N=e(j,w);Y.push(N)}q=!w.permissions.check(...Y)}catch{q=!0}if(q)return A;else if(z){let Y=!0;if(w.userCan&&typeof w.userCan[z]==="boolean")Y=!w.userCan[z];else if(w.permissions?.check&&typeof w.permissions.check==="function")try{let N=[z];if(J)N.push(J);if(X){let K=e(X,w);N.push(K)}Y=!w.permissions.check(...N)}catch{Y=!0}return Y?B:U||""}else return U||""}),g}function xf(f,w,g){let $=f;return $=$.replace(/@isset\(([^)]+)\)((?:.|\n)*?)(?:@else((?:.|\n)*?))?@endisset/g,(b,y,j,A,z)=>{try{let J=e(y.trim(),w);if(J!==void 0&&J!==null)return j;return A||""}catch(J){if(g)return R("Directive",`Error processing @isset directive: ${J.message}`,g,f,z,b);else return console.error("Error processing @isset directive:",J),b}}),$=$.replace(/@empty\(([^)]+)\)((?:.|\n)*?)(?:@else((?:.|\n)*?))?@endempty/g,(b,y,j,A,z)=>{try{let J=e(y.trim(),w);if(J===void 0||J===null||J===""||Array.isArray(J)&&J.length===0||typeof J==="object"&&J!==null&&Object.keys(J).length===0)return j;return A||""}catch(J){if(g)return R("Directive",`Error processing @empty directive: ${J.message}`,g,f,z,b);else return console.error("Error processing @empty directive:",J),b}}),$}function cf(f,w,g){let $=f;return $=$.replace(/@env\s*\(\s*(['"])([^'"]+)\1\s*\)([\s\S]*?)(?:@else([\s\S]*?))?@endenv/g,(b,y,j,A,z="")=>{return(n.env.NODE_ENV||n.env.BUN_ENV||"development")===j?A:z}),$=$.replace(/@production([\s\S]*?)(?:@else([\s\S]*?))?@endproduction/g,(b,y,j="")=>{return(n.env.NODE_ENV||n.env.BUN_ENV||"development")==="production"?y:j}),$=$.replace(/@development([\s\S]*?)(?:@else([\s\S]*?))?@enddevelopment/g,(b,y,j="")=>{return(n.env.NODE_ENV||n.env.BUN_ENV||"development")==="development"?y:j}),$=$.replace(/@staging([\s\S]*?)(?:@else([\s\S]*?))?@endstaging/g,(b,y,j="")=>{return(n.env.NODE_ENV||n.env.BUN_ENV||"development")==="staging"?y:j}),$=$.replace(/@testing([\s\S]*?)(?:@else([\s\S]*?))?@endtesting/g,(b,y,j="")=>{return(n.env.NODE_ENV||n.env.BUN_ENV||"development")==="testing"?y:j}),$}function x1(f,w,g){let $=f;$=$.replace(/@forelse\s*\(([^)]+)as([^)]+)\)([\s\S]*?)@empty([\s\S]*?)@endforelse/g,(j,A,z,J,X,B)=>{try{let q=Function(...Object.keys(w),`return ${A.trim()}`)(...Object.values(w));if(!Array.isArray(q)||q.length===0)return X;return`@foreach (${A.trim()} as ${z.trim()})${J}@endforeach`}catch(U){return R("Directive",`Error in @forelse(${A.trim()} as ${z.trim()}): ${U instanceof Error?U.message:String(U)}`,g,f,B,j)}});function b(j){let A=j.indexOf("@foreach");if(A===-1)return null;let z=j.indexOf("(",A);if(z===-1)return null;let J=1,X=z+1,B=-1;while(X<j.length&&J>0){if(j[X]==="(")J++;else if(j[X]===")"){if(J--,J===0){B=X;break}}X++}if(B===-1)return null;let U=j.substring(z+1,B),q=U.indexOf(" as ");if(q===-1)return null;let Y=A,N=U.substring(0,q),K=U.substring(q+4),Q=B+1,_=1,W=Q,L=/@foreach/g,k=/@endforeach/g;while(_>0&&W<j.length){L.lastIndex=W,k.lastIndex=W;let O=L.exec(j),V=k.exec(j);if(!V)return null;if(O&&O.index<V.index)_++,W=O.index+8;else{if(_--,_===0){let l=j.substring(Q,V.index),b0=V.index+11;return{start:Y,end:b0,arrayExpr:N,itemVar:K,content:l}}W=V.index+11}}return null}function y(j,A){let z=j;while(!0){let J=b(z);if(!J)break;let{start:X,end:B,arrayExpr:U,itemVar:q,content:Y}=J;try{let K=Function(...Object.keys(A),`return ${U.trim()}`)(...Object.values(A));if(!Array.isArray(K)){let _=R("Directive",`Error in @foreach: ${U.trim()} is not an array`,g,z,X,z.substring(X,B));z=z.substring(0,X)+_+z.substring(B);continue}let Q="";for(let _=0;_<K.length;_++){let W=K[_],L=q.trim(),k={...A,[L]:W,loop:{index:_,iteration:_+1,first:_===0,last:_===K.length-1,count:K.length}},O=y(Y,k);O=H0(O,k,g),O=N0(O,k,g),Q+=O}z=z.substring(0,X)+Q+z.substring(B)}catch(N){let K=R("Directive",`Error in @foreach(${U.trim()} as ${q.trim()}): ${N instanceof Error?N.message:String(N)}`,g,z,X,z.substring(X,B));z=z.substring(0,X)+K+z.substring(B)}}return z}return $=y($,w),$=$.replace(/@for\s*\(([^)]+)\)([\s\S]*?)@endfor/g,(j,A,z,J)=>{try{let X=Object.keys(w),B=Object.values(w);return Function(...X,`
660
+ let result = '';
661
+ for (${A}) {
662
+ result += \`${z.replace(/`/g,"\\`").replace(/\{\{([^}]+)\}\}/g,(q,Y)=>{return`\${${Y}}`})}\`;
663
+ }
664
+ return result;
665
+ `)(...B)}catch(X){return R("Directive",`Error in @for(${A}): ${X instanceof Error?X.message:String(X)}`,g,f,J,j)}}),$=$.replace(/@while\s*\(([^)]+)\)([\s\S]*?)@endwhile/g,(j,A,z,J)=>{try{let X=Object.keys(w),B=Object.values(w);return Function(...X,`
666
+ let result = '';
667
+ let maxIterations = 1000; // Safety limit
668
+ let counter = 0;
669
+ while (${A} && counter < maxIterations) {
670
+ counter++;
671
+ result += \`${z.replace(/`/g,"\\`").replace(/\{\{([^}]+)\}\}/g,(q,Y)=>{return`\${${Y}}`})}\`;
672
+ }
673
+ if (counter >= maxIterations) {
674
+ result += '[Error: Maximum iterations exceeded in while loop]';
675
+ }
676
+ return result;
677
+ `)(...B)}catch(X){return R("Directive",`Error in @while(${A}): ${X instanceof Error?X.message:String(X)}`,g,f,J,j)}}),$}export{x1 as processLoops};
678
+ export{pf as b,G as c,jy as d,Lb as e,d$ as f,v$ as g};