@stacksjs/build 0.70.256 → 0.70.257
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +187 -180
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,215 +1,222 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
`||
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
`)
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
var sf=Object.defineProperty;var of=(e)=>e;function af(e,t){this[e]=of.bind(null,t)}var lf=(e,t)=>{for(var r in t)sf(e,r,{get:t[r],enumerable:!0,configurable:!0,set:af.bind(t,r)})};var de=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ze=import.meta.require;import{readFile as ff,stat as Am,writeFile as cf}from"fs/promises";async function Ss(e,t){if(Tr)return globalThis.Bun.write(e,t);let r=typeof t==="string"?t:t instanceof ArrayBuffer?Buffer.from(t):t;return await cf(e,r),typeof t==="string"?Buffer.byteLength(t):t.byteLength}async function ct(e){if(Tr)return globalThis.Bun.file(e).text();return ff(e,"utf-8")}var Tr,vm;var Rr=de(()=>{Tr=typeof globalThis.Bun<"u",vm=!Tr&&typeof process<"u"&&!!process.versions?.node});import{existsSync as uf,statSync as hf}from"fs";import{dirname as df,extname as mf,isAbsolute as Gi,resolve as gf}from"path";function Wr(e){try{return hf(e).isFile()}catch{return!1}}function Nr(e,t){let r=e.replace(/[?#].*$/,"");if(!(r.startsWith("./")||r.startsWith("../")||r==="."||r==="..")&&!Gi(r))return{resolved:null,isRelative:!1};let n=df(t),i=Gi(r)?r:gf(n,r);if(Wr(i))return{resolved:i,isRelative:!0};let s=mf(i),o=pf[s];if(o){let a=i.slice(0,-s.length);for(let f of o){let c=a+f;if(Wr(c))return{resolved:c,isRelative:!0}}}for(let a of Ts){let f=i+a;if(Wr(f))return{resolved:f,isRelative:!0}}if(uf(i))for(let a of Ts){let f=`${i}/index${a}`;if(Wr(f))return{resolved:f,isRelative:!0}}return{resolved:null,isRelative:!0}}function yf(e){let t=e.length,r="",n=0;while(n<t){let i=e.charCodeAt(n);if(i===34||i===39||i===96){let s=i;r+=e[n++];while(n<t){let o=e.charCodeAt(n),a=e[n++];if(r+=s===96&&o!==s?o===10||o===13?a:" ":a,o===92&&n<t){let f=e[n++];r+=s===96?f===`
|
|
3
|
+
`||f==="\r"?f:" ":f;continue}if(o===s)break}continue}if(i===47&&n+1<t){let s=e.charCodeAt(n+1);if(s===47){n+=2;while(n<t&&e.charCodeAt(n)!==10)n++;continue}if(s===42){n+=2;while(n+1<t&&!(e.charCodeAt(n)===42&&e.charCodeAt(n+1)===47))n++;n+=2;continue}}r+=e[n++]}return r}function Vi(e,t={}){let r=[],n=yf(e);Rs.lastIndex=0;let i;while((i=Rs.exec(n))!==null){let s=!!i[1],o=i[3],a=i[0],f;if(a.includes("* as "))f="export-star-as";else if(a.includes("*"))f="export-star";else f="export-named";r.push({specifier:o,kind:f,isTypeOnly:s})}if(t.includeImports){Ws.lastIndex=0;while((i=Ws.exec(n))!==null)r.push({specifier:i[3],kind:"import",isTypeOnly:!!i[1]})}return r}async function Zi(e,t={}){let r=new Set,n=new Map,i=[],s=[];for(let o of e)if(!r.has(o))r.add(o),s.push(o);while(s.length>0){let o=s.shift(),a;try{a=await ct(o)}catch{continue}let f=Vi(a,t);n.set(o,f);for(let c of f){if(!(c.specifier.startsWith(".")||Gi(c.specifier)))continue;let u=Nr(c.specifier,o);if(u.resolved){if(!r.has(u.resolved))r.add(u.resolved),s.push(u.resolved)}else i.push({from:o,specifier:c.specifier,isTypeOnly:c.isTypeOnly})}}return{reachable:r,reExports:n,unresolved:i}}var Ts,pf,Rs,Ws;var Ns=de(()=>{Rr();Ts=[".ts",".tsx",".mts",".cts",".vue",".stx",".js",".jsx",".mjs",".cjs",".d.ts",".d.mts",".d.cts"],pf={".js":[".ts",".tsx",".d.ts"],".jsx":[".tsx",".ts",".d.ts"],".mjs":[".mts",".d.mts"],".cjs":[".cts",".d.cts"]};Rs=/(?:^|[\n;{}])\s*export\s+(type\s+)?(?:\*(?:\s+as\s+\w+)?|\{[^}]*\})\s+from\s+(['"])([^'"]+)\2/g,Ws=/(?:^|[\n;{}])\s*import\s+(type\s+)?(?:[^'";\n]+\s+from\s+)?(['"])([^'"]+)\2/g});function Ds(e,t={}){let{lineEnding:r="lf",trailingNewline:n=!0,maxBlankLines:i=1,trimTrailingWhitespace:s=!0,normalizeIndentation:o=!0,indent:a={style:"spaces",size:2},declarationOrder:f,importGrouping:c,preserveComments:u=!0,insertFinalNewline:l=!0}=t,p=e;if(p=Cf(p,r),c?.enabled!==!1)p=Ef(p,c||{});if(f)p=Of(p,f);if(s)p=bf(p);if(p=Af(p,i),o)p=xf(p,a);if(n||l)p=vf(p);return p}function Cf(e,t){let r=e;if(e.indexOf("\r")!==-1){if(e.indexOf(`\r
|
|
4
|
+
`)!==-1)r=r.replace(/\r\n/g,`
|
|
5
|
+
`);if(r.indexOf("\r")!==-1)r=r.replace(/\r/g,`
|
|
6
|
+
`)}if(t==="crlf")r=r.replace(/\n/g,`\r
|
|
7
|
+
`);return r}function bf(e){return e.split(`
|
|
8
|
+
`).map((t)=>t.replace(/[\t ]+$/,"")).join(`
|
|
9
|
+
`)}function Af(e,t){let r=new RegExp(`\\n{${t+2},}`,"g");return e.replace(r,`
|
|
10
|
+
`.repeat(t+1))}function vf(e){return`${e.replace(/\s+$/,"")}
|
|
11
|
+
`}function xf(e,t){let{style:r="spaces",size:n=2}=t,i=r==="tabs"?"\t":" ".repeat(n),s=e.split(`
|
|
12
|
+
`),o=[];for(let a of s){let f=a.match(/^([\t ]*)(.*)$/);if(!f){o.push(a);continue}let[,c,u]=f;if(!u){o.push("");continue}let l=c.replace(/\t/g," "),p=Math.floor(l.length/2);o.push(i.repeat(p)+u)}return o.join(`
|
|
13
|
+
`)}function Ef(e,t){let{groups:r=wf,separateGroups:n=!0,alphabetize:i=!0}=t,s=e.split(`
|
|
14
|
+
`),o=[],a=[],f=-1;for(let w=0;w<s.length;w++){let A=s[w],$=Fs(A);if($)o.push({line:A,source:$.source,group:$.group,isType:$.isType}),f=w;else if(o.length>0&&A.trim()==="")continue;else if(o.length>0||A.trim()!==""){if(o.length===0||w>f+1)a.push(A)}}if(o.length===0)return e;let c=new Map;for(let w of r)c.set(w,[]);for(let w of o)(c.get(w.group)||c.get("external")||[]).push(w);if(i)for(let[,w]of c)w.sort((A,$)=>{if(A.isType!==$.isType)return A.isType?1:-1;return A.source.localeCompare($.source)});let u=[],l=null;for(let w of r){let A=c.get(w)||[];if(A.length===0)continue;if(n&&l!==null)u.push("");for(let $ of A)u.push($.line);l=w}let p=s.slice(0,s.findIndex((w)=>Fs(w)!==null)),h=a;while(h.length>0&&h[0].trim()==="")h.shift();return[...p,...u,"",...h].join(`
|
|
15
|
+
`)}function Fs(e){let t=e.trim(),r=t.match(/^import\s+(type\s+)?.*from\s+['"]([^'"]+)['"]/);if(!r){let s=t.match(/^import\s+['"]([^'"]+)['"]/);if(s)return{source:s[1],group:Ps(s[1]),isType:!1};return null}let n=!!r[1],i=r[2];return{source:i,group:n?"type":Ps(i),isType:n}}function Ps(e){if(e.startsWith("node:"))return"builtin";let t=["assert","buffer","child_process","cluster","crypto","dgram","dns","events","fs","http","https","net","os","path","querystring","readline","stream","url","util","zlib"];if(t.includes(e)||t.includes(e.split("/")[0]))return"builtin";if(e==="."||e==="./index"||e==="./index.js"||e==="./index.ts")return"index";if(e.startsWith("./"))return"sibling";if(e.startsWith("../"))return"parent";if(e.startsWith("@/")||e.startsWith("~/")||e.startsWith("#"))return"internal";if(e.startsWith("@"))return"scoped";return"external"}function Of(e,t){let{kinds:r=$f,alphabetize:n=!1,groupExports:i=!0}=t,s=e.split(`
|
|
16
|
+
`),o=[],a=[],f=[],c=null,u=0,l=!0,p=!1,h=[];for(let $=0;$<s.length;$++){let O=s[$],T=O.trim(),S=u,W=T.startsWith("///"),b=S===0&&!W&&(T.startsWith("//")||T.startsWith("/*"));if(p||b){if(h.push(O),!p&&T.startsWith("/*")&&!T.includes("*/"))p=!0;else if(p&&T.includes("*/"))p=!1;continue}if(S===0&&h.length>0&&T===""){h.push(O);continue}u+=(O.match(/\{/g)||[]).length,u-=(O.match(/\}/g)||[]).length;let L=kf(T);if(l&&L&&L.kind!=="import"&&!T.startsWith("//")&&!T.startsWith("/*"))l=!1;if(l){if(h.length>0){if(L?.kind==="import"||!L)a.push(...h),h.length=0}a.push(O);continue}if(L&&u<=1){if(c)o.push(c);c={lines:h.length>0?[...h,O]:[O],kind:L.kind,name:L.name,isExport:L.isExport},h.length=0}else if(c)c.lines.push(O);else{if(T==="")continue;f.push(O)}}if(c)o.push(c);if(h.length>0)f.push(...h);o.sort(($,O)=>{if(i&&$.isExport!==O.isExport)return $.isExport?-1:1;let T=r.indexOf($.kind),S=r.indexOf(O.kind),W=T>=0?T:r.length,b=S>=0?S:r.length;if(W!==b)return W-b;if(n)return $.name.localeCompare(O.name);return 0});let w=[...a],A=null;for(let $ of o){if(A!==null&&$.kind!==A)w.push("");w.push(...$.lines),A=$.kind}if(f.length>0)w.push(""),w.push(...f);return w.join(`
|
|
17
|
+
`)}function kf(e){let t=e.startsWith("export "),r=t?e.slice(7):e;if(e.startsWith("import "))return{kind:"import",name:e.match(/from\s+['"]([^'"]+)['"]/)?.[1]||"",isExport:!1};if(r.startsWith("type ")||r.startsWith("declare type "))return{kind:"type",name:r.match(/type\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("interface ")||r.startsWith("declare interface "))return{kind:"interface",name:r.match(/interface\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("class ")||r.startsWith("abstract class ")||r.startsWith("declare class ")||r.startsWith("declare abstract class "))return{kind:"class",name:r.match(/class\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("enum ")||r.startsWith("const enum ")||r.startsWith("declare enum ")||r.startsWith("declare const enum "))return{kind:"enum",name:r.match(/enum\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("function ")||r.startsWith("async function ")||r.startsWith("declare function ")||r.startsWith("declare async function "))return{kind:"function",name:r.match(/function\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("const ")||r.startsWith("let ")||r.startsWith("var ")||r.startsWith("declare const ")||r.startsWith("declare let ")||r.startsWith("declare var "))return{kind:"variable",name:r.match(/(?:const|let|var)\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("namespace ")||r.startsWith("declare namespace "))return{kind:"namespace",name:r.match(/namespace\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("module ")||r.startsWith("declare module "))return{kind:"module",name:r.match(/module\s+['"]?(\w+)['"]?/)?.[1]||"",isExport:t};if(e.startsWith("export {")||e.startsWith("export *")||e.startsWith("export type {"))return{kind:"export",name:"",isExport:!0};return null}var $f,wf;var Ms=de(()=>{$f=["import","type","interface","enum","class","function","variable","export","module","namespace","unknown"],wf=["builtin","external","scoped","internal","parent","sibling","index","type"]});class Fr{plugins=[];config=null;register(e){if(this.plugins.some((t)=>t.name===e.name))throw Error(`Plugin "${e.name}" is already registered`);this.plugins.push(e)}unregister(e){let t=this.plugins.findIndex((r)=>r.name===e);if(t>=0)return this.plugins.splice(t,1),!0;return!1}getPlugins(){return this.plugins}createLogger(e){return{debug:(t)=>console.debug(`[${e}] ${t}`),info:(t)=>console.info(`[${e}] ${t}`),warn:(t)=>console.warn(`[${e}] ${t}`),error:(t)=>console.error(`[${e}] ${t}`)}}async runOnStart(e){let t=e;for(let r of this.plugins)if(r.onStart){let n=await r.onStart(t);if(n)t=n}return this.config=t,t}async runOnBeforeFile(e,t){let r=t;for(let n of this.plugins)if(n.onBeforeFile){let i={filePath:e,sourceCode:t,content:r,config:this.config,log:this.createLogger(n.name)},s=await n.onBeforeFile(i);if(typeof s==="string")r=s}return r}async runOnDeclarations(e,t,r){let n=r;for(let i of this.plugins)if(i.onDeclarations){let s={filePath:e,sourceCode:t,declarations:n,config:this.config,log:this.createLogger(i.name)},o=await i.onDeclarations(s);if(o)n=o}return n}async runOnAfterFile(e,t,r){let n=r;for(let i of this.plugins)if(i.onAfterFile){let s={filePath:e,sourceCode:t,content:n,config:this.config,log:this.createLogger(i.name)},o=await i.onAfterFile(s);if(typeof o==="string")n=o}return n}async runOnEnd(e){for(let t of this.plugins)if(t.onEnd)await t.onEnd(e)}async runOnError(e,t,r){for(let n of this.plugins)if(n.onError){let i={filePath:t,sourceCode:r,config:this.config,log:this.createLogger(n.name)};await n.onError(e,i)}}}function Sf(e){return e}var Rm,Wm;var Is=de(()=>{Rm=new Fr;Wm=Sf({name:"strip-internal",version:"1.0.0",description:"Removes declarations marked with @internal",onDeclarations:(e)=>{return e.declarations.filter((t)=>{if(t.leadingComments){if(t.leadingComments.some((r)=>r.includes("@internal")))return e.log.debug(`Stripping internal declaration: ${t.name}`),!1}return!0})}})});function Tf(e){if(e.indexOf("/*")===-1)return e.trim();let t=[],r=0,n=0,i=e.length;while(n<i)if(e.charCodeAt(n)===47&&n+1<i&&e.charCodeAt(n+1)===42){if(n>r)t.push(e.substring(r,n));n+=2;while(n<i-1){if(e.charCodeAt(n)===42&&e.charCodeAt(n+1)===47){n+=2;break}n++}r=n}else n++;if(r<i)t.push(e.substring(r));return t.join("").trim()}function Qi(){Ir=!0,_e=null}function en(){Ir=!1;let e=_e;return _e=null,e}function tn(e){let t=e.length;if(t===0)return!1;let r=0;if(e.charCodeAt(r)===45)r++;if(r>=t)return!1;let n=r;while(r<t&&e.charCodeAt(r)>=48&&e.charCodeAt(r)<=57)r++;if(r===n)return!1;if(r<t&&e.charCodeAt(r)===46){r++;let i=r;while(r<t&&e.charCodeAt(r)>=48&&e.charCodeAt(r)<=57)r++;if(r===i)return!1}return r===t}function Rf(e){for(let t=0,r=e.length-1;t<r;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return!0}function qi(e,t){let r=0,n=0;while((n=e.indexOf(t,n))!==-1)r++,n+=t.length;return r}function Bs(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===36||e===95||e===46||e===58||e===45}function Pr(e){let t=e.trim();if(t.length<3||t.charCodeAt(0)!==60)return!1;if(t.startsWith("<>"))return t.endsWith("</>");let r=t.charCodeAt(1);if(!(r>=65&&r<=90||r>=97&&r<=122||r===36||r===95))return!1;let n=2;while(n<t.length&&Bs(t.charCodeAt(n)))n++;let i=t.slice(1,n),s=t.charCodeAt(n);if(s>32&&s!==62&&s!==47)return!1;if(t.endsWith("/>"))return!0;let o=t.lastIndexOf("</");if(o===-1)return!1;let a=o+2;while(a<t.length&&Bs(t.charCodeAt(a)))a++;return t.slice(o+2,a)===i&&t.charCodeAt(a)===62&&a===t.length-1}function ar(e){let t=e.length,r=!1;for(let o=1;o<t;o++)if(e.charCodeAt(o)<=32&&e.charCodeAt(o-1)<=32){r=!0;break}if(!r)for(let o=0;o<t;o++){let a=e.charCodeAt(o);if(a===10||a===13||a===9){r=!0;break}}if(!r)return e;let n=[],i=-1,s=!1;for(let o=0;o<t;o++)if(e.charCodeAt(o)<=32){if(!s){if(i>=0)n.push(e.substring(i,o));n.push(" "),s=!0,i=-1}}else{if(s||i<0)i=o;s=!1}if(i>=0)n.push(e.substring(i));return n.join("")}function Ee(e,t=!1,r=!1,n=0){if(!e||typeof e!=="string")return"unknown";if(n>=20)return"unknown";let i=e.trim();if(Pr(i))return"JSX.Element";if(i.startsWith("BigInt("))return"bigint";if(i.startsWith("Symbol.for("))return"symbol";if(i.includes(".raw`")||i.includes("String.raw`"))return"string";if(i.startsWith("`")&&i.endsWith("`")){if(!t||i.includes("${")||i.includes(`
|
|
18
|
+
`)||i.includes("\r"))return"string";return i}if(i.charCodeAt(0)===39||i.charCodeAt(0)===34){let o=Wf(i);if(o!==null){if(o==="string"||!t)return"string";return o}}if(tn(i)){if(!t)return"number";return i}if(i==="true"||i==="false"){if(!t)return"boolean";return i}if(i==="null")return"null";if(i==="undefined")return"undefined";if(i.startsWith("[")&&i.endsWith("]"))return Ui(i,t,n+1);if(i.startsWith("{")&&i.endsWith("}"))return Hf(i,t,n+1);if(i.startsWith("class ")||i.startsWith("class{"))return Jf(i);if(i.startsWith("new "))return _f(i);if(i.endsWith("as const")){let o=i.slice(0,-8).trim();if(o.startsWith("[")&&o.endsWith("]")){let a=o.slice(1,-1).trim();if(!a)return"readonly []";let f=Dr(a),c=[];for(let u=0;u<f.length;u++)c.push(Ee(f[u].trim(),!0,!1,n+1));return`readonly [${c.join(", ")}]`}return Ee(o,!0,r,n+1)}if(Mr(i)!==-1||i.startsWith("function")||i.startsWith("async"))return Us(i,r,n,t);if(i.startsWith("`")&&i.endsWith("`"))return jf(i,t);if(i.startsWith("Promise."))return Gs(i,t,n);if(i.startsWith("await "))return"unknown";if(i.charCodeAt(i.length-1)===110&&i.length>1&&Rf(i)){if(t)return i;return"bigint"}if(i.startsWith("Symbol(")||i==="Symbol.for")return"symbol";let s=Vs(i);if(s!==null)return s;if(Mf(i))return"boolean";if(Df(i))return"number";return"unknown"}function Ls(e){let t=e.charCodeAt(0);if(t!==39&&t!==34)return!1;return Tt(e,0,t)===e.length}function Wf(e){if(Ls(e))return e;let t=Nf(e);if(t.length<2)return null;let r=!1,n=!0,i="";for(let s of t){let o=s.trim();if(Ls(o))r=!0,i+=Ff(o);else n=!1}if(n)return Pf(i);if(r)return"string";return null}function Nf(e){let t=[],r=0,n=0,i=0;while(i<e.length){let s=e.charCodeAt(i);if(s===39||s===34||s===96){i=Tt(e,i,s);continue}if(s===40||s===91||s===123)r++;else if(s===41||s===93||s===125)r--;else if(s===43&&r===0)t.push(e.slice(n,i)),n=i+1;i++}return t.push(e.slice(n)),t}function Ff(e){return e.slice(1,-1).replace(/\\(.)/g,(t,r)=>{if(r==="n")return`
|
|
19
|
+
`;if(r==="t")return"\t";if(r==="r")return"\r";if(r==="0")return"\x00";return r})}function Pf(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}'`}function Df(e){if(e==="")return!1;let t=!1,r=!1;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);if(i>=48&&i<=57){t=!0;continue}if(i===43||i===45||i===42||i===47||i===37){r=!0;continue}if(i===46||i===40||i===41||i<=32)continue;return!1}return t&&r}function Mf(e){let t=0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n===34||n===39||n===96){r=Tt(e,r,n)-1;continue}if(n===40||n===91||n===123){t++;continue}if(n===41||n===93||n===125){t--;continue}if(t!==0)continue;if(e.startsWith("===",r)||e.startsWith("!==",r)||e.startsWith("==",r)||e.startsWith("!=",r)||e.startsWith(">=",r)||e.startsWith("<=",r))return!0;if((n===62||n===60)&&e.charCodeAt(r-1)!==61&&e.charCodeAt(r+1)!==61)return!0}return!1}function If(e,t=!1,r=0){return Ee(e,t,!0,r)}function lr(e,t=!1,r=""){let n=Hs(r),i=[],s=!1,o=0;while(o<e.length){let f=e.charCodeAt(o);if(f===34||f===39||f===96){o=Tt(e,o,f);continue}if(f===47&&e.charCodeAt(o+1)===47){o+=2;while(o<e.length&&e.charCodeAt(o)!==10&&e.charCodeAt(o)!==13)o++;continue}if(f===47&&e.charCodeAt(o+1)===42){let c=e.indexOf("*/",o+2);o=c===-1?e.length:c+2;continue}if(e.startsWith("function",o)&&js(e,o,8)||e.startsWith("class",o)&&js(e,o,5)){let c=Lf(e,o);if(c!==-1){o=_s(e,c);continue}}if(f===61&&e.charCodeAt(o+1)===62){let c=o+2;while(c<e.length&&e.charCodeAt(c)<=32)c++;if(e.charCodeAt(c)===123){o=_s(e,c);continue}}if(e.startsWith("return",o)&&(o===0||!rt(e.charCodeAt(o-1)))&&!rt(e.charCodeAt(o+6))){o+=6;let c=!1;while(o<e.length&&e.charCodeAt(o)<=32){let $=e.charCodeAt(o);if($===10||$===13)c=!0;o++}if(c||o>=e.length||e.charCodeAt(o)===59||e.charCodeAt(o)===125){s=!0;continue}let u=o,l=0,p=0,h=0;while(o<e.length){let $=e.charCodeAt(o);if($===34||$===39||$===96){o=Tt(e,o,$);continue}if($===47&&e.charCodeAt(o+1)===47)break;if($===47&&e.charCodeAt(o+1)===42){let O=e.indexOf("*/",o+2);o=O===-1?e.length:O+2;continue}if($===40)l++;else if($===41)l--;else if($===91)p++;else if($===93)p--;else if($===123)h++;else if($===125){if(h===0&&l===0&&p===0)break;h--}else if($===59&&l===0&&p===0&&h===0)break;else if(($===10||$===13)&&l===0&&p===0&&h===0){let O=o+1;while(O<e.length&&e.charCodeAt(O)<=32)O++;if(e.startsWith("return",O)&&!rt(e.charCodeAt(O+6)))break}o++}let w=e.slice(u,o).trim(),A=St(w,n);if(!i.includes(A))i.push(A);continue}o++}if(s&&!i.includes("undefined"))i.push("undefined");let a=i.includes("unknown")?"unknown":i.length===0?"void":i.join(" | ");return t&&!a.startsWith("Promise<")?`Promise<${a}>`:a}function Hs(e){let t=new Map,r=e.startsWith("(")&&e.endsWith(")")?e.slice(1,-1):e,n=0,i=0,s=0;for(let o=0;o<=r.length;o++){let a=r.charCodeAt(o);if(a===40||a===91||a===123)i++;else if(a===41||a===93||a===125)i--;else if(a===60)s++;else if(a===62&&r.charCodeAt(o-1)!==61&&s>0)s--;if(o!==r.length&&(a!==44||i!==0||s!==0))continue;let f=r.slice(n,o).trim(),c=f.indexOf(":");if(c!==-1){let u=f.slice(0,c).trim().replace(/^\.\.\./,"").replace(/\?$/,""),l=f.slice(c+1).trim(),p=l.indexOf("=");if(p!==-1)l=l.slice(0,p).trim();if(fr(u)&&l)t.set(u,l)}n=o+1}return t}function St(e,t){let r=e.trim();while(Ys(r))r=r.slice(1,-1).trim();if(Pr(r))return"JSX.Element";if(r.startsWith("await ")){let s=St(r.slice(6),t);return s.startsWith("Promise<")&&s.endsWith(">")?s.slice(8,-1):s}if(t.has(r))return t.get(r);if(r.startsWith("!"))return"boolean";if(r.startsWith("fetch("))return"Promise<Response>";let n=Bf(r);if(n){let s=St(n.whenTrue,t),o=St(n.whenFalse,t);return s===o?s:`${s} | ${o}`}if(["===","!==","==","!=",">=","<="].some((s)=>r.includes(s))||r.includes(" > ")||r.includes(" < "))return"boolean";let i=0;for(let s=r.length-1;s>=0;s--){let o=r.charCodeAt(s);if(o===41||o===93||o===125)i++;else if(o===40||o===91||o===123)i--;else if(i===0&&(o===43||o===45||o===42||o===47||o===37)){let a=St(r.slice(0,s),t),f=St(r.slice(s+1),t);if(o===43&&(a==="string"||f==="string"))return"string";if(a==="number"&&f==="number")return"number";break}}return Ee(r,!1).replace(/\btypeof\s+[$A-Z_a-z][$\w]*/g,(s)=>{let o=s.slice(7);return t.get(o)??"unknown"})}function Ys(e){if(!e.startsWith("(")||!e.endsWith(")"))return!1;let t=0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n===40)t++;else if(n===41&&--t===0)return r===e.length-1}return!1}function Bf(e){let t=0,r=-1;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);if(i===40||i===91||i===123)t++;else if(i===41||i===93||i===125)t--;else if(i===63&&t===0&&e.charCodeAt(n+1)!==63)r=n;else if(i===58&&t===0&&r!==-1)return{whenTrue:e.slice(r+1,n),whenFalse:e.slice(n+1)}}return null}function js(e,t,r){return(t===0||!rt(e.charCodeAt(t-1)))&&!rt(e.charCodeAt(t+r))}function Lf(e,t){for(let r=t;r<e.length;r++){let n=e.charCodeAt(r);if(n===34||n===39||n===96){r=Tt(e,r,n)-1;continue}if(n===123)return r;if(n===59)return-1}return-1}function _s(e,t){let r=1,n=t+1;while(n<e.length&&r>0){let i=e.charCodeAt(n);if(i===34||i===39||i===96){n=Tt(e,n,i);continue}if(i===47&&e.charCodeAt(n+1)===47){n+=2;while(n<e.length&&e.charCodeAt(n)!==10&&e.charCodeAt(n)!==13)n++;continue}if(i===47&&e.charCodeAt(n+1)===42){let s=e.indexOf("*/",n+2);n=s===-1?e.length:s+2;continue}if(i===123)r++;else if(i===125)r--;n++}return n}function Tt(e,t,r){let n=t+1;while(n<e.length){let i=e.charCodeAt(n);if(i===92){n+=2;continue}if(n++,i===r)break}return n}function jf(e,t){if(e.includes(".raw`")||e.includes("String.raw`"))return"string";if(!t||e.includes("${")||e.includes(`
|
|
20
|
+
`)||e.includes("\r"))return"string";return e}function _f(e){let t=4;while(t<e.length&&e.charCodeAt(t)<=32)t++;let r=t,n=e.charCodeAt(t);if(n<65||n>90)return"unknown";while(t<e.length&&(rt(e.charCodeAt(t))||e.charCodeAt(t)===46))t++;if(t===r)return"unknown";let i=e.slice(r,t);{let s=e.slice(t),o=s;if(s.startsWith("<")){let f=0,c=-1;for(let u=0;u<s.length;u++)if(s[u]==="<")f++;else if(s[u]===">"){if(f--,f===0){c=u;break}}if(c!==-1){let u=s.slice(0,c+1);o=s.slice(c+1);let l=o.indexOf("(");if(l!==-1){let p=0,h=-1;for(let w=l;w<o.length;w++)if(o[w]==="(")p++;else if(o[w]===")"){if(p--,p===0){h=w;break}}if(h!==-1){if(o.slice(h+1).trimStart().startsWith("."))return"unknown"}}return`${i}${u}`}}let a=o.indexOf("(");if(a!==-1){let f=0,c=-1;for(let u=a;u<o.length;u++)if(o[u]==="(")f++;else if(o[u]===")"){if(f--,f===0){c=u;break}}if(c!==-1){if(o.slice(c+1).trimStart().startsWith("."))return"unknown"}}switch(i){case"Date":return"Date";case"Map":return"Map<any, any>";case"Set":return"Set<any>";case"WeakMap":return"WeakMap<any, any>";case"WeakSet":return"WeakSet<any>";case"RegExp":return"RegExp";case"Error":return"Error";case"Array":return"any[]";case"Object":return"object";case"Function":return"Function";case"Promise":return"Promise<any>";default:return i}}return"unknown"}function Jf(e){let t=e.trimStart(),r=5;while(r<t.length&&t.charCodeAt(r)<=32)r++;let n=r;if(r<t.length&&rt(t.charCodeAt(r))){while(r<t.length&&rt(t.charCodeAt(r)))r++;return`typeof ${t.slice(n,r)}`}return"{ new (...args: any[]): any }"}function Gs(e,t,r=0){if(e.startsWith("Promise.resolve(")){let n=e.indexOf(")",16);if(n!==-1){let i=e.slice(16,n).trim();if(i)return`Promise<${Ee(i,t,!1,r+1)}>`}return"Promise<unknown>"}if(e.startsWith("Promise.reject("))return"Promise<never>";if(e.startsWith("Promise.all(")){let n=e.indexOf("[",12),i=e.lastIndexOf("]");if(n!==-1&&i>n){let s=e.slice(n+1,i).trim(),o=Dr(s),a=[];for(let f=0;f<o.length;f++){let c=o[f].trim();if(c.startsWith("Promise.resolve(")){let u=Gs(c,t,r+1),l=u.indexOf("<"),p=u.lastIndexOf(">");a.push(l!==-1&&p>l?u.slice(l+1,p):"unknown")}else a.push(Ee(c,t,!1,r+1))}return`Promise<[${a.join(", ")}]>`}return"Promise<unknown[]>"}return"Promise<unknown>"}function Ui(e,t,r=0){let n=e.slice(1,-1).trim();if(!n)return"never[]";if(r>=20)return"unknown[]";let i=Dr(n),s=!1;for(let p=0;p<i.length;p++){let h=i[p],w=h.length;while(w>0&&h.charCodeAt(w-1)<=32)w--;if(w>=8&&h.slice(w-8,w)==="as const"){s=!0;break}}if(s){let p=[];for(let h=0;h<i.length;h++){let w=i[h].trim();if(w.endsWith("as const")){let A=w.slice(0,-8).trim();if(A.startsWith("[")&&A.endsWith("]")){let $=A.slice(1,-1).trim(),O=Dr($),T=[];for(let S=0;S<O.length;S++)T.push(Ee(O[S].trim(),!0,!1,r+1));p.push(`readonly [${T.join(", ")}]`)}else p.push(Ee(A,!0,!1,r+1))}else if(w.startsWith("[")&&w.endsWith("]"))p.push(Ui(w,!0,r+1));else p.push(Ee(w,!0,!1,r+1))}return`readonly [
|
|
11
21
|
${p.join(` |
|
|
12
22
|
`)}
|
|
13
|
-
]`}let o=
|
|
14
|
-
`:"",$=w,
|
|
15
|
-
${$}: ${
|
|
16
|
-
${h}${
|
|
23
|
+
]`}let o=Ir&&!t,a=[],f=[];for(let p of i){let h=p.trim(),w=_e;if(_e=null,h.startsWith("...")){let A=h.slice(3).trim(),$=Ee(A,!1,!1,r+1);if($.endsWith("[]"))a.push($.slice(0,-2));else if($.startsWith("readonly [")&&$.endsWith("]"))a.push($.slice(10,-1));else if(cr(A))a.push(`(typeof ${A})[number]`);else a.push("unknown")}else if(h.startsWith("[")&&h.endsWith("]"))a.push(Ui(h,t,r+1));else a.push(If(h,t,r+1));if(o)f.push(_e);_e=w}if(o)if(zi(e))_e=ar(e);else{let p=[];for(let h=0;h<i.length;h++){let w=i[h].trim();if(w.endsWith("as const"))continue;if(Xi(w)||w==="null"||w==="undefined")p.push(w);else if(w.startsWith("[")&&zi(w))p.push(ar(w));else if(w.startsWith("{")){if(f[h])p.push(f[h])}else{let A=Ee(w,!1,!1,0);if(A!=="unknown")p.push(A)}}if(p.length>0)_e=`[${p.join(", ")}]`}if(t)return`readonly [${a.join(", ")}]`;let c=new Set,u=[],l=!0;for(let p of a){if(!c.has(p))c.add(p),u.push(p);if(l){if(!(tn(p)||p==="true"||p==="false"||p.charCodeAt(0)===34&&p.charCodeAt(p.length-1)===34||p.charCodeAt(0)===39&&p.charCodeAt(p.length-1)===39))l=!1}}if(l&&a.length<=10)return`readonly [${a.join(", ")}]`;if(u.length===1)return`${u[0]}[]`;return`(${u.join(" | ")})[]`}function Dr(e){let t=[],r=0,n=0,i=!1,s=0;for(let a=0;a<e.length;a++){let f=e.charCodeAt(a);if(!i&&(f===34||f===39||f===96))i=!0,s=f;else if(i&&f===s&&(a===0||e.charCodeAt(a-1)!==92))i=!1;if(!i){if(f===91||f===123||f===40)n++;else if(f===93||f===125||f===41)n--;else if(f===44&&n===0){let c=e.substring(r,a).trim();if(c)t.push(c);r=a+1;continue}}}let o=e.substring(r).trim();if(o)t.push(o);return t}function Xi(e){if(tn(e))return!0;if(e==="true"||e==="false")return!0;if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return!0;return!1}function Kf(e){return e==="number"||e==="string"||e==="boolean"}function zi(e){let t=!1,r=0,n=e.length;for(let i=0;i<n;i++){let s=e.charCodeAt(i);if(t){if(s===92){i++;continue}if(s===r)t=!1;continue}if(s===34||s===39||s===96){t=!0,r=s;continue}if(s===61&&i+1<n&&e.charCodeAt(i+1)===62)return!1;if(s>=97&&s<=122){let o=i;while(i<n&&(e.charCodeAt(i)>=97&&e.charCodeAt(i)<=122||e.charCodeAt(i)>=65&&e.charCodeAt(i)<=90||e.charCodeAt(i)>=48&&e.charCodeAt(i)<=57||e.charCodeAt(i)===95||e.charCodeAt(i)===36))i++;let a=e.slice(o,i);if(a==="new"||a==="async"||a==="await"||a==="function"||a==="yield"||a==="console"||a==="process")return!1;let f=i;while(f<n&&e.charCodeAt(f)<=32)f++;if(f<n&&e.charCodeAt(f)===40)return!1;i--}}return!0}function Hf(e,t,r=0){let n=e.slice(1,-1).trim();if(!n)return"{}";if(r>=20)return"Record<string, unknown>";let i=qf(n),s=[],o=[],a=Ir&&!t,f=[];for(let[l,p]of i){let{comments:h,key:w}=Zf(l),A=h?`${h}
|
|
24
|
+
`:"",$=w,O=!1;if(w==="..."){let F=p.trim(),J=cr(F)?`typeof ${F}`:Ee(F,t,!1,r+1);if(J!=="unknown")o.push(J);if(a&&(cr(F)||F.startsWith("{")))f.push(`...${ar(F)}`);continue}let T=_e;_e=null;let S,W=p.trim();if(W===w&&fr(W))S=`typeof ${W}`;else if(zf(W)){O=!0;let F=Qf(w);if(F){$=F.name;let J="";if(W.startsWith("async "))J="async ";if(W.charCodeAt(J.length)===42)J+="*";S=Js(F.name,J+F.typeParams+W.slice(J.length))}else S=Js(w,W)}else if(S=Ee(p,t,!1,r+1),S.includes("=>")||S.includes("function")||S.includes("async"))S=Yf(S);let b=_e;_e=T;let L=p.trim(),re=Uf(w);if(re){let F=Xf(re.kind,re.name,S);if(F){s.push(`${A}${F}`);continue}}if(!t&&Kf(S)&&Xi(L))s.push(`${A}/** @defaultValue ${L} */
|
|
25
|
+
${$}: ${S}`);else s.push(`${A}${$}: ${S}`);if(a){let F=Tf($);if(L.endsWith("as const"));else if(Xi(L))f.push(`${F}: ${L}`);else if(L.startsWith("[")&&zi(L))f.push(`${F}: ${ar(L)}`);else if(L.startsWith("{")){if(b)f.push(`${F}: ${b}`)}else if(O)f.push(`${F}: ${ar(S)}`);else if(!L.startsWith("[")&&(L.includes("=>")||L.startsWith("function")||L.startsWith("async"))){let J=Us(L,!1,0,!0);f.push(`${F}: ${J}`)}}}if(a&&f.length>0){let l=r>0?(r-1)/2:0,p=`{ ${f.join(", ")} }`;if(p.length<=80)_e=p;else{let h=" ".repeat((l+1)*2),w=" ".repeat(l*2);_e=`{
|
|
26
|
+
${h}${f.join(`,
|
|
17
27
|
${h}`)}
|
|
18
|
-
${w}}`}}let
|
|
28
|
+
${w}}`}}let c=s.length>0?`{
|
|
19
29
|
${s.join(`;
|
|
20
30
|
`)}
|
|
21
|
-
}`:"{}";if(o.length===0)return
|
|
22
|
-
`).map((
|
|
23
|
-
`),r=t.indexOf("async");if(r!==-1){let
|
|
24
|
-
`),key:e.slice(r).trim()}}function
|
|
25
|
-
`))L=L.slice(6).trimStart(),re="async ";if(L.startsWith("*"))L=L.slice(1).trimStart(),re+="*";
|
|
26
|
-
`,l+2);l=y===-1?a:y+1;continue}if(g===Oe){let y=
|
|
27
|
-
`,l+2);l=y===-1?a:y+1;continue}if(g===Oe){let y=
|
|
28
|
-
`,l+2);return l=g===-1?a:g+1,!0}if(d===Oe){let g=
|
|
29
|
-
`,l+2);l=v===-1?a:v+1;continue}if(C===Oe){let v=
|
|
30
|
-
`,l+2);l=C===-1?a:C+1;continue}break}if(l>=a)return l=d,!0;let g=
|
|
31
|
-
|
|
32
|
-
`),
|
|
33
|
-
`)
|
|
34
|
-
`)
|
|
35
|
-
`)
|
|
36
|
-
`)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`)){let
|
|
40
|
-
`)
|
|
41
|
-
`)
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
}`:"{}";if(o.length===0)return c;let u=o[0];for(let l=1;l<o.length;l++)u=`Omit<${u}, keyof ${o[l]}> & ${o[l]}`;return s.length>0?`Omit<${u}, keyof ${c}> & ${c}`:u}function fr(e){if(!e)return!1;let t=e.charCodeAt(0);if(!(t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||t>127))return!1;for(let r=1;r<e.length;r++)if(!rt(e.charCodeAt(r)))return!1;return!0}function cr(e){let t=e.split(".");return t.length>0&&t.every(fr)}function Vs(e){if(e.length<3||!e.endsWith(")"))return null;let t=e.indexOf("(");if(t===-1||at(e,t,"(",")")!==e.length-1)return null;let r=e.slice(0,t).trim(),n=!1;if(r.endsWith("?."))n=!0,r=r.slice(0,-2).trim();let i=r,s=!1,o=r.indexOf("<");if(o!==-1){if(at(r,o,"<",">")!==r.length-1)return null;i=r.slice(0,o).trim(),s=!0}if(!cr(i))return null;let a=e.slice(t+1,-1).trim(),f=Mr(a)!==-1||a.startsWith("function")||a.startsWith("async function"),c=cr(a),u=!f&&a.endsWith(")")&&Vs(a)!==null;if(!s&&!n&&!f&&!c&&!u)return null;let l=`ReturnType<typeof ${r}>`;return n?`${l} | undefined`:l}function Yf(e){let t=e.split(`
|
|
32
|
+
`).map((c)=>Zs(c)).join(`
|
|
33
|
+
`),r=t.indexOf("async");if(r!==-1){let c=r>0?t.charCodeAt(r-1):32,u=r+5<t.length?t.charCodeAt(r+5):32;if(!rt(c)&&!rt(u))t=(t.slice(0,r)+t.slice(r+5)).trim()}let n=t.indexOf("(");if(n!==-1){let c=at(t,n,"(",")");if(c!==-1){let u=t.slice(n,c+1),l=Lt(u);t=t.slice(0,n)+l+t.slice(c+1)}}let i=t.length,s="",o=[],a=!1,f=!1;for(let c=0;c<i;c++){let u=t.charCodeAt(c);if(u===123||u===40)o.push(u);else if(u===125||u===41)o.pop();if(u<=32){if(a=!0,u===10||u===13)f=!0;continue}if(a&&s.length>0){let l=(o.length>0?o[o.length-1]:0)===123;if(f&&l){let p=s.charCodeAt(s.length-1),h=p===59||p===44||p===123||u===125,w=s.length>=2&&s.charCodeAt(s.length-1)===47&&s.charCodeAt(s.length-2)===42;if(!h&&!w)s+="; ";else s+=" "}else s+=" "}a=!1,f=!1,s+=t[c]}return s.trim()}function rt(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===95||e===36}function Lt(e){let t=e.trim(),r,n=!1;if(t.startsWith("(")&&t.endsWith(")"))r=t.slice(1,-1),n=!0;else r=t;let i=r.trim();if(!i)return n?"()":"";let s=!1;{let w=0;for(let A=0;A<i.length;A++){let $=i.charCodeAt(A);if($===40||$===60||$===91||$===123)w++;else if($===41||$===62||$===93||$===125)w--;else if(w===0&&$===61){let O=A>0?i.charCodeAt(A-1):0,T=A+1<i.length?i.charCodeAt(A+1):0;if(O!==61&&O!==33&&O!==60&&O!==62&&T!==61&&T!==62){s=!0;break}}}}if(!s)return t;let o=[],a=[],f=0,c=0,u=!1,l=0;for(let w=0;w<=i.length;w++){if(w===i.length){o.push(i.slice(f));break}let A=i.charCodeAt(w);if(u){if(A===92){w++;continue}if(A===l)u=!1;continue}if(A===47&&w+1<i.length){let $=i.charCodeAt(w+1);if($===42){w+=2;while(w+1<i.length&&!(i.charCodeAt(w)===42&&i.charCodeAt(w+1)===47))w++;w++;continue}if($===47){while(w<i.length&&i.charCodeAt(w)!==10)w++;continue}}if(A===39||A===34||A===96){u=!0,l=A;continue}if(A===40||A===60||A===91||A===123)c++;else if(A===41||A===62||A===93||A===125)c--;else if(A===44&&c===0){o.push(i.slice(f,w));let $=",",O=w+1;while(O<i.length&&i.charCodeAt(O)<=32)$+=i[O],O++;a.push($),f=O}}let p=[];for(let w of o){let A=w.trim();if(!A){p.push(w);continue}if(A.startsWith("//"))continue;let $=Zs(A),O=w.slice(0,w.length-w.trimStart().length);p.push(O+Gf($))}let h=p[0]||"";for(let w=1;w<p.length;w++)h+=(a[w-1]||", ")+p[w];return n?`(${h})`:h}function Zs(e){let t=!1,r=0;for(let n=0;n<e.length-1;n++){let i=e.charCodeAt(n);if(t){if(i===92){n++;continue}if(i===r)t=!1;continue}if(i===39||i===34||i===96){t=!0,r=i;continue}if(i===47&&e.charCodeAt(n+1)===47)return e.slice(0,n).trimEnd()}return e}function Gf(e){if(e.startsWith("..."))return e;let t=-1,r=-1,n=0,i=!1,s=0;for(let a=0;a<e.length;a++){let f=e.charCodeAt(a);if(i){if(f===92){a++;continue}if(f===s)i=!1;continue}if(f===47&&a+1<e.length){let c=e.charCodeAt(a+1);if(c===42){a+=2;while(a+1<e.length&&!(e.charCodeAt(a)===42&&e.charCodeAt(a+1)===47))a++;a++;continue}if(c===47){while(a<e.length&&e.charCodeAt(a)!==10)a++;continue}}if(f===39||f===34||f===96){i=!0,s=f;continue}if(f===40||f===60||f===91||f===123)n++;else if(f===41||f===62||f===93||f===125)n--;else if(n===0){if(f===58&&t===-1)t=a;else if(f===61&&r===-1&&(a===0||e.charCodeAt(a-1)!==61)&&(a+1>=e.length||e.charCodeAt(a+1)!==61&&e.charCodeAt(a+1)!==62))r=a}}let o=r!==-1;if(t!==-1&&(r===-1||t<r)){let a=e.slice(0,t).trim(),f=r!==-1?e.slice(t+1,r).trim():e.slice(t+1).trim(),c=o&&!a.endsWith("?")?"?":"";return`${a}${c}: ${f}`}else if(r!==-1){let a=e.slice(0,r).trim(),f=!a.endsWith("?")?"?":"",c=e.slice(r+1).trim(),u="unknown";if(c==="true"||c==="false")u="boolean";else if(/^-?\d+(\.\d+)?$/.test(c))u="number";else if(c.startsWith("'")&&c.endsWith("'")||c.startsWith('"')&&c.endsWith('"'))u="string";else if(c.startsWith("["))u="unknown[]";else if(c.startsWith("{"))u="Record<string, unknown>";return`${a}${f}: ${u}`}return e}function Vf(e){let t=0,r=e.length;while(t<r){while(t<r&&(e.charCodeAt(t)===32||e.charCodeAt(t)===9||e.charCodeAt(t)===10||e.charCodeAt(t)===13))t++;if(t+1<r&&e.charCodeAt(t)===47&&e.charCodeAt(t+1)===42){t+=2;while(t+1<r&&!(e.charCodeAt(t)===42&&e.charCodeAt(t+1)===47))t++;t+=2;continue}break}return t}function Zf(e){let t=[],r=0,n=e.length;while(r<n){while(r<n&&e.charCodeAt(r)<=32)r++;if(r+1>=n||e.charCodeAt(r)!==47||e.charCodeAt(r+1)!==42)break;let i=r;r+=2;while(r+1<n&&!(e.charCodeAt(r)===42&&e.charCodeAt(r+1)===47))r++;r=Math.min(r+2,n),t.push(e.slice(i,r).trim())}return{comments:t.join(`
|
|
34
|
+
`),key:e.slice(r).trim()}}function qf(e){let t=[],r="",n="",i=0,s=!1,o="",a=!0,f=!1,c=0,u=!1,l=!1,p=0,h=!1,w=!1;for(let A=0;A<e.length;A++){let $=e.charCodeAt(A),O=A>0?e.charCodeAt(A-1):0,T=A<e.length-1?e.charCodeAt(A+1):0;if(!s&&!f&&$===47&&T===47){A+=2;while(A<e.length&&e.charCodeAt(A)!==10)A++;continue}if(!s&&!f&&$===47&&T===42){f=!0,c=1,r+="/*",A++;continue}else if(f&&$===42&&T===47){if(c--,r+="*/",A++,c===0)f=!1;continue}else if(f&&$===47&&T===42){c++,r+="/*",A++;continue}let S=e[A];if(!s&&($===34||$===39||$===96))s=!0,o=S,r+=S;else if(s&&S===o&&O!==92)s=!1,r+=S;else if(!s&&!f)if($===40&&i===0&&a&&p===0){n=r.trim();let W=Vf(n),b=W>0?n.slice(0,W):"",L=n.slice(W),re="";if(L.startsWith("async ")||L.startsWith("async\t")||L.startsWith(`async
|
|
35
|
+
`))L=L.slice(6).trimStart(),re="async ";if(L.startsWith("*"))L=L.slice(1).trimStart(),re+="*";n=b+L,r=re+S,a=!1,h=!0,w=!1,i=1}else if($===123||$===91||$===40){if(i++,r+=S,w&&$===123)w=!1}else if($===125||$===93||$===41){if(i--,r+=S,$===41&&i===0&&!a&&!h)u=!0;if(h){if($===41&&i===0&&!w)w=!0;else if($===125&&i===0)h=!1,w=!1}}else if($===58&&i===0&&a&&p===0)n=r.trim(),r="",a=!1;else if($===58&&i===0&&u)l=!0,r+=S;else if($===60&&l)p++,r+=S;else if($===60&&a&&i===0)p++,r+=S;else if($===62&&p>0&&O!==61)p--,r+=S;else if($===61&&T===62&&l&&p===0)l=!1,u=!1,r+=S;else if($===44&&i===0&&p===0&&!w){if(n&&r.trim()){let W=r.trim();t.push([n,W])}else if(a&&r.trim()){let W=r.trim();if(fr(W))t.push([W,W]);else if(W.startsWith("...")&&W.length>3)t.push(["...",W.slice(3).trim()])}r="",n="",a=!0,u=!1,l=!1,p=0}else r+=S;else r+=S}if(n&&r.trim()){let A=r.trim();t.push([n,A])}else if(a&&r.trim()){let A=r.trim();if(fr(A))t.push([A,A]);else if(A.startsWith("...")&&A.length>3)t.push(["...",A.slice(3).trim()])}return t}function Uf(e){let t=e.trim();if(t.startsWith("get ")&&t.length>4){let r=t.slice(4).trim();if(r)return{kind:"get",name:r}}if(t.startsWith("set ")&&t.length>4){let r=t.slice(4).trim();if(r)return{kind:"set",name:r}}return null}function Xf(e,t,r){let n=r.trim();if(n.charCodeAt(0)!==40)return null;let i=at(n,0,"(",")");if(i===-1)return null;let s=n.slice(1,i).trim(),o=n.slice(i+1).trimStart();if(!o.startsWith("=>"))return null;let a=o.slice(2).trim();if(e==="get")return`get ${t}(): ${a||"unknown"}`;return`set ${t}(${s})`}function zf(e){let t=e;if(t.startsWith("async ")||t.startsWith("async\t"))t=t.slice(5).trimStart();if(t.startsWith("*"))t=t.slice(1).trimStart();if(!t.startsWith("("))return!1;let r=0;for(let n=0;n<t.length;n++){let i=t.charCodeAt(n);if(i===40)r++;else if(i===41){if(r--,r===0){let s=t.slice(n+1).trimStart();if(s.startsWith("{"))return!0;if(s.startsWith(":")){let o=qs(s,1);if(o?.kind==="arrow")return!1;if(o?.kind==="body")return!0}return!1}}}return!1}function Qf(e){let t=e.trimEnd();if(!t.endsWith(">"))return null;let r=0,n=-1;for(let s=t.length-1;s>=0;s--){let o=t.charCodeAt(s);if(o===62){if(s>0&&t.charCodeAt(s-1)===61)continue;r++}else if(o===60){if(r--,r===0){n=s;break}}}if(n===-1)return null;let i=t.slice(0,n).trimEnd();if(!i)return null;return{name:i,typeParams:t.slice(n)}}function Js(e,t){let r=t.trimStart(),n=!1,i=!1;if(r.startsWith("async ")||r.startsWith("async\t"))n=!0,r=r.slice(5).trimStart();if(r.startsWith("*"))i=!0,r=r.slice(1).trimStart();let s="";if(r.charCodeAt(0)===60){let p=0,h=-1;for(let w=0;w<r.length;w++)if(r.charCodeAt(w)===60)p++;else if(r.charCodeAt(w)===62&&!(w>0&&r.charCodeAt(w-1)===61)){if(p--,p===0){h=w;break}}if(h!==-1)s=r.slice(0,h+1),r=r.slice(h+1).trimStart()}let o=r.indexOf("("),a=at(r,o,"(",")");if(o===-1||a===-1)return"() => unknown";let f=r.slice(o,a+1),c="unknown",u=r.slice(a+1).trimStart();if(u.charCodeAt(0)===58){let p=u.slice(1),h=qs(p,0);if(h)c=p.slice(0,h.index).trim();else c=p.trim()}if(c==="unknown"){if(n&&i)c="AsyncGenerator<unknown, void, unknown>";else if(i)c="Generator<unknown, void, unknown>";else if(n)c="Promise<void>"}else if(n&&!c.startsWith("Promise<")&&!c.startsWith("AsyncGenerator<"))c=`Promise<${c}>`;let l=Lt(f);return`${s}${l} => ${c}`}function qs(e,t){let r=0,n=0,i=0,s=0,o=!1,a=0;for(let f=t;f<e.length;f++){let c=e.charCodeAt(f);if(o){if(c===92)f++;else if(c===a)o=!1;continue}if(c===34||c===39||c===96){o=!0,a=c;continue}if(c===40)r++;else if(c===41&&r>0)r--;else if(c===91)n++;else if(c===93&&n>0)n--;else if(c===60)i++;else if(c===62&&i>0&&e.charCodeAt(f-1)!==61)i--;else if(c===125&&s>0)s--;else if(c===123){let u=r>0||n>0||i>0||s>0,l=e.slice(t,f).trimEnd(),p=l.charCodeAt(l.length-1),h=l.length===0||p===38||p===124||p===40||p===44||p===58||p===61||p===91;if(u||h)s++;else return{index:f,kind:"body"}}else if(c===61&&f+1<e.length&&e.charCodeAt(f+1)===62&&r===0&&n===0&&i===0&&s===0)return{index:f,kind:"arrow"}}return null}function at(e,t,r,n){let i=0;for(let s=t;s<e.length;s++)if(e[s]===r)i++;else if(e[s]===n){if(n===">"&&s>0&&e[s-1]==="=")continue;if(i--,i===0)return s}return-1}function Mr(e){let t=0,r=0,n=!1,i="";for(let s=0;s<e.length-1;s++){let o=e[s],a=e[s+1],f=s>0?e[s-1]:"";if(!n&&(o==='"'||o==="'"||o==="`"))n=!0,i=o;else if(n&&o===i&&f!=="\\")n=!1;if(!n){if(o==="(")t++;else if(o===")")t--;else if(o==="[")r++;else if(o==="]")r--;if(o==="="&&a===">"&&t===0&&r===0)return s}}return-1}function Us(e,t=!1,r=0,n=!0){let i=e.trim();if(i.length>200&&qi(i,"=>")>2&&qi(i,"<")>5&&!i.startsWith("function"))return t?"((...args: any[]) => any)":"(...args: any[]) => any";if(i.startsWith("async ")&&i.includes("=>")){let o=i.slice(5).trim(),a=Mr(o);if(a===-1)return t?"(() => Promise<unknown>)":"() => Promise<unknown>";let f=o.substring(0,a).trim(),c=o.substring(a+2).trim(),u=Ks(f),l=u.params,p=u.returnType;if(l=Lt(l),l==="()"||l==="")l="()";else if(!l.startsWith("("))l=`(${l})`;let h=p;if(h);else if(c.startsWith("{"))h=lr(c.slice(1,c.endsWith("}")?-1:void 0),!0,l);else h=Ee(c,n,!1,r+1);let w=`${l} => ${p||h.startsWith("Promise<")?h:`Promise<${h}>`}`;return t?`(${w})`:w}if(i.includes("=>")){let o="",a=i;if(i.startsWith("<")){let $=at(i,0,"<",">");if($!==-1)o=i.substring(0,$+1),a=i.substring($+1).trim()}let f=Mr(a);if(f===-1)return t?"(() => unknown)":"() => unknown";let c=a.substring(0,f).trim(),u=a.substring(f+2).trim(),l=Ks(c),p=l.params,h=l.returnType;if(p=Lt(p),p==="()"||p==="")p="()";else if(!p.startsWith("("))p=`(${p})`;let w="unknown";if(h)w=h;else if(u.startsWith("{"))w=lr(u.slice(1,u.endsWith("}")?-1:void 0),!1,p);else if(Pr(u)||Ys(u)&&Pr(u.slice(1,-1).trim()))w="JSX.Element";else if(u.includes("=>")){let $=u.trimStart(),O=$.indexOf("("),T=O!==-1?at($,O,"(",")"):-1,S=T!==-1?$.indexOf("=>",T):-1;if(O===0&&T!==-1&&S!==-1){let W=$.substring(O+1,T).trim(),b=Lt(W);if(o.includes("T")&&b.includes("T"))w=`(${b}) => T`;else w=`(${b}) => any`}else w="any"}else if(t)w="unknown";else w=St(u,Hs(p));let A=`${o}${p} => ${w}`;return t?`(${A})`:A}if(i.startsWith("function")){let o=8,a=i.length;while(o<a&&i.charCodeAt(o)<=32)o++;let f=!1;if(o<a&&i.charCodeAt(o)===42){f=!0,o++;while(o<a&&i.charCodeAt(o)<=32)o++}let c="";if(o<a&&i.charCodeAt(o)===60){let p=o,h=1;o++;while(o<a&&h>0){let w=i.charCodeAt(o);if(w===60)h++;else if(w===62&&i.charCodeAt(o-1)!==61)h--;o++}c=i.substring(p,o);while(o<a&&i.charCodeAt(o)<=32)o++}let u=i.indexOf("(",o);if(u!==-1){let p=1,h=u+1;while(h<a&&p>0){let O=i.charCodeAt(h);if(O===40)p++;else if(O===41)p--;h++}let w=i.substring(u+1,h-1).trim(),A=w?`(${w})`:"()";if(f){let O=i.substring(h).trim(),T=O.indexOf("Generator<");if(T!==-1){let W=T+10,b=O.indexOf(">",W);if(b!==-1){let L=O.substring(W,b),re=`${c}${A} => Generator<${L}>`;return t?`(${re})`:re}}let S=`${c}${A} => Generator<any, any, any>`;return t?`(${S})`:S}let $=`${c}${A} => unknown`;return t?`(${$})`:$}let l="(...args: any[]) => unknown";return t?`(${l})`:l}if(i.includes("=>")&&i.includes("(")&&i.includes(")")){if(i.length>100||qi(i,"=>")>2){let o="";if(i.charCodeAt(0)===60){let l=at(i,0,"<",">");if(l!==-1)o=i.substring(0,l+1)}let a=i.indexOf("("),f=a!==-1?at(i,a,"(",")"):-1,c=a!==-1&&f!==-1?i.substring(a,f+1):"(...args: any[])";c=Lt(c);let u=`${o}${c} => any`;return t?`(${u})`:u}return t?`(${i})`:i}let s="() => unknown";return t?`(${s})`:s}function Ks(e){let t=e.trim();if(!t.startsWith("("))return{params:t,returnType:""};let r=at(t,0,"(",")");if(r===-1)return{params:t,returnType:""};let n=t.slice(r+1).trim();return{params:t.slice(0,r+1),returnType:n.startsWith(":")?n.slice(1).trim():""}}function Xs(e){let t=e.trim();if(t==="any"||t==="object"||t==="unknown")return!0;if(t.startsWith("Record<")&&t.endsWith(">"))return!0;if(t.startsWith("Array<")&&t.endsWith(">"))return!0;if(/^\{\s*\[[^\]]*\]:\s*(any|string|number|unknown)\s*\}$/.test(t))return!0;return!1}function zs(e){let t=e.lastIndexOf(" satisfies ");if(t===-1)return null;let r=e.slice(t+11).trim();if(r.endsWith(";"))r=r.slice(0,-1).trim();return r||null}var Ir=!1,_e=null;var rn=()=>{};function Re(e){return e===ke||e===Se||e===pe||e===be}function Rt(e){return e>=65&&e<=90||e>=97&&e<=122||e===tc||e===to||e>127}function Je(e){return Rt(e)||e>=48&&e<=57}function rc(e){let t=!0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n===lt){if(t)return!1;t=!0}else if(t){if(!Rt(n))return!1;t=!1}else if(!Je(n))return!1}return e.length>0&&!t}function jr(e,t,r){let n=t+1;while(n<e.length){let i=e.charCodeAt(n);if(i===Ye){n+=2;continue}if(n++,i===r)break}return n}function ic(e){if(e==="any"||e==="object"||e==="unknown")return!0;if(e.startsWith("Record<")||e.startsWith("Array<"))return!0;return e.charCodeAt(0)===_&&e.includes("[")&&e.includes("]:")}function ro(e,t,r=!0){return no(e,t,r,!0)}function io(e,t,r=!0){return no(e,t,r,!1)}function no(e,t,r,n){let i=e,s=r,o=n,a=i.length,f=[],c=new Map,u=new Set,l=0;if(l<a&&i.charCodeAt(l)===65279)l++;function p(m,d){if(m<d){let g=i.charCodeAt(m),y=i.charCodeAt(d-1);if(g!==ke&&g!==Se&&g!==pe&&g!==be&&y!==ke&&y!==Se&&y!==pe&&y!==be)return i.slice(m,d)}while(m<d&&Re(i.charCodeAt(m)))m++;while(d>m&&Re(i.charCodeAt(d-1)))d--;return i.slice(m,d)}function h(){if(l>=a)return;let m=i.charCodeAt(l);if(m!==ke&&m!==Se&&m!==pe&&m!==be&&m!==U)return;while(l<a){let d=i.charCodeAt(l);if(d===ke||d===Se||d===pe||d===be){l++;continue}if(d===U&&l+1<a){let g=i.charCodeAt(l+1);if(g===U){let y=i.indexOf(`
|
|
36
|
+
`,l+2);l=y===-1?a:y+1;continue}if(g===Oe){let y=i.indexOf("*/",l+2);l=y===-1?a:y+2;continue}}break}}function w(m){let d=m.length,g=0,y=d;for(let C=0;C<d;C++){let v=m.charCodeAt(C);if(g){if(v===Ye){C++;continue}if(v===g)g=0;continue}if(v===ne||v===ae||v===Te){g=v;continue}if(v===U&&C+1<d){let k=m.charCodeAt(C+1);if(k===U){y=C;while(y>0&&(m.charCodeAt(y-1)===ke||m.charCodeAt(y-1)===Se))y--;return m.slice(0,y)}if(k===Oe){let R=m.indexOf("*/",C+2);if(R!==-1){m=`${m.slice(0,C)} ${m.slice(R+2)}`,C--;continue}}}}y=d;while(y>0&&(m.charCodeAt(y-1)===ke||m.charCodeAt(y-1)===Se||m.charCodeAt(y-1)===be))y--;return y<d?m.slice(0,y):m}function A(m){l++;let d=m===ne?"'":'"';while(l<a){let g=i.indexOf(d,l);if(g===-1){l=a;return}let y=0,C=g-1;while(C>=0&&i.charCodeAt(C)===Ye)y++,C--;if(y%2===0){l=g+1;return}l=g+1}}function $(){l++;let m=[];while(l<a){let d=i.charCodeAt(l);if(m.length===0){if(d===Ye){l+=2;continue}if(d===Te){l++;return}if(d===to&&l+1<a&&i.charCodeAt(l+1)===_){l+=2,m.push(0);continue}l++;continue}if(d===ne||d===ae){A(d);continue}if(d===Te){$();continue}if(d===U&&l+1<a){let g=i.charCodeAt(l+1);if(g===U){let y=i.indexOf(`
|
|
37
|
+
`,l+2);l=y===-1?a:y+1;continue}if(g===Oe){let y=i.indexOf("*/",l+2);l=y===-1?a:y+2;continue}if(T()){S();continue}l++;continue}if(d===_){m[m.length-1]++,l++;continue}if(d===G){let g=m[m.length-1];if(g===0){m.pop(),l++;continue}m[m.length-1]=g-1,l++;continue}l++}}function O(){let m=i.charCodeAt(l);if(m===ne||m===ae)return A(m),!0;if(m===Te)return $(),!0;if(m===U&&l+1<a){let d=i.charCodeAt(l+1);if(d===U){let g=i.indexOf(`
|
|
38
|
+
`,l+2);return l=g===-1?a:g+1,!0}if(d===Oe){let g=i.indexOf("*/",l+2);return l=g===-1?a:g+2,!0}if(T())return S(),!0}return!1}function T(){let m=l-1;while(m>=0&&(i.charCodeAt(m)===ke||i.charCodeAt(m)===Se||i.charCodeAt(m)===pe||i.charCodeAt(m)===be))m--;if(m<0)return!0;let d=i.charCodeAt(m);if(d===$e||d===Q||d===ue||d===33||d===38||d===124||d===Br||d===qe||d===Ue||d===Z||d===_||d===G||d===94||d===126||d===43||d===45||d===Oe||d===37||d===he||d===oe)return!0;if(Je(d)){let g=m;while(g>=0&&Je(i.charCodeAt(g)))g--;let y=i.slice(g+1,m+1);if(y==="return"||y==="typeof"||y==="void"||y==="delete"||y==="throw"||y==="new"||y==="in"||y==="of"||y==="case"||y==="instanceof"||y==="yield"||y==="await")return!0}return!1}function S(){l++;let m=!1;while(l<a){let d=i.charCodeAt(l);if(d===Ye){l+=2;continue}if(m){if(d===Ce)m=!1;l++;continue}if(d===ue){m=!0,l++;continue}if(d===U){l++;break}if(d===pe||d===be)break;l++}while(l<a&&Je(i.charCodeAt(l)))l++}function W(){let m=l;while(l<a&&Je(i.charCodeAt(l)))l++;return i.slice(m,l)}function b(m){if(l+m.length>a)return!1;for(let d=0;d<m.length;d++)if(i.charCodeAt(l+d)!==m.charCodeAt(d))return!1;if(l+m.length<a&&Je(i.charCodeAt(l+m.length)))return!1;return!0}function L(m){let d=l+m;while(d<a){let g=i.charCodeAt(d);if(g===ke||g===Se||g===pe||g===be){d++;continue}return g!==lt&&g!==$e}return!1}function re(){if(l>=a)return!1;switch(i.charCodeAt(l)){case 101:return b("export")||b("enum");case 105:return b("import")||b("interface");case 102:return b("function");case 99:return b("class")||b("const");case 116:return b("type");case 108:return b("let");case 118:return b("var");case 100:return b("declare")||b("default");case 109:return b("module");case 110:return b("namespace");case 97:return b("abstract")||b("async");default:return!1}}function F(){let m=i.charCodeAt(l);if(m!==pe&&m!==be)return!1;let d=l;if(l++,m===be&&l<a&&i.charCodeAt(l)===pe)l++;while(l<a){let y=i.charCodeAt(l);if(y===ke||y===Se||y===be||y===pe){l++;continue}if(y===U&&l+1<a){let C=i.charCodeAt(l+1);if(C===U){let v=i.indexOf(`
|
|
39
|
+
`,l+2);l=v===-1?a:v+1;continue}if(C===Oe){let v=i.indexOf("*/",l+2);l=v===-1?a:v+2;continue}}break}let g=l>=a||re()||i.charCodeAt(l)===G;return l=d,g}function J(){let m=i.charCodeAt(l);if(m!==pe&&m!==be)return!1;let d=l;if(l++,m===be&&l<a&&i.charCodeAt(l)===pe)l++;while(l<a){let y=i.charCodeAt(l);if(y===ke||y===Se||y===be||y===pe){l++;continue}if(y===U&&l+1<a&&i.charCodeAt(l+1)===U){let C=i.indexOf(`
|
|
40
|
+
`,l+2);l=C===-1?a:C+1;continue}break}if(l>=a)return l=d,!0;let g=i.charCodeAt(l);if(g===124||g===38||g===lt||g===Br||g===qe)return l=d,!1;if(b("extends")||b("keyof")||b("typeof")||b("infer")||b("is")||b("as")||b("in"))return l=d,!1;return l=d,!0}let X=/[{}'"`\/]/g,se=/[()'"`\/]/g,H=/[[\]'"`\/]/g,q=/[<>'"`\/]/g;function V(m,d){let g=1;l++;let y=m===_?X:m===Q?se:m===ue?H:q;y.lastIndex=l;let C;while((C=y.exec(i))!==null){let v=C.index,k=i.charCodeAt(v);if(k===ne||k===ae){l=v,A(k),y.lastIndex=l;continue}if(k===Te){l=v,$(),y.lastIndex=l;continue}if(k===U){if(l=v,O()){y.lastIndex=l;continue}y.lastIndex=v+1;continue}if(k===m)g++;else if(k===d){if(d===oe&&v>0&&i.charCodeAt(v-1)===$e){y.lastIndex=v+1;continue}if(g--,g===0)return l=v+1,l}y.lastIndex=v+1}return l=a,l}function Y(){return l>0&&i.charCodeAt(l-1)===$e}function we(){return l+1<a&&i.charCodeAt(l+1)===oe}let z=/[<{};'"`\/\n\r()[\]]/g;function ie(){let m=0,d=0,g=0,y=0,C=i.charCodeAt(l)===_;z.lastIndex=l;let v;while((v=z.exec(i))!==null){let k=v.index,R=i.charCodeAt(k);if(R===ne||R===ae){l=k,A(R),z.lastIndex=l;continue}if(R===Te){l=k,$(),z.lastIndex=l;continue}if(R===U){if(k>0&&i.charCodeAt(k-1)===he){z.lastIndex=k+1;continue}if(l=k,O()){z.lastIndex=l;continue}z.lastIndex=k+1;continue}if(R===he){let E=As(k);if(E!==null)y=Math.max(0,y+E);z.lastIndex=k+1;continue}if(R===Q){d++,z.lastIndex=k+1;continue}if(R===ge){d--,z.lastIndex=k+1;continue}if(R===ue){g++,z.lastIndex=k+1;continue}if(R===Ce){g--,z.lastIndex=k+1;continue}if(R===_){m++,z.lastIndex=k+1;continue}if(R===G){let E=m>0;if(E)m--;if((!E||C)&&m===0&&d===0&&g===0&&y===0){l=k+1;return}z.lastIndex=k+1;continue}if(R===Z&&m===0&&d===0&&g===0&&y===0){l=k+1;return}if((R===pe||R===be)&&m===0&&d===0&&g===0&&y===0){if(l=k,F())return}z.lastIndex=k+1}l=a}function kr(){l++;while(l<a&&(i.charCodeAt(l)===ke||i.charCodeAt(l)===Se))l++;let m=i.indexOf(`
|
|
41
|
+
`,l),d=m===-1?a:m,g=i.indexOf(";",l);if(g!==-1&&g<d){let y=g-1;while(y>=l&&(i.charCodeAt(y)===ke||i.charCodeAt(y)===Se))y--;let C=i.charCodeAt(l),v=i.charCodeAt(y);if(C===_&&v===G||C===ue&&v===Ce||C===ne&&v===ne||C===ae&&v===ae||C===Te&&v===Te){l=g+1;return}}ie()}function kt(){V(_,G);while(l<a&&Re(i.charCodeAt(l)))l++;if(b("from")){l+=4;while(l<a&&Re(i.charCodeAt(l)))l++;if(l<a){let m=i.charCodeAt(l);if(m===ne||m===ae)A(m)}}while(l<a&&(i.charCodeAt(l)===ke||i.charCodeAt(l)===Se))l++;if(l<a&&i.charCodeAt(l)===Z)l++}function wt(){l++;while(l<a&&Re(i.charCodeAt(l)))l++;if(b("as")){l+=2;while(l<a&&Re(i.charCodeAt(l)))l++;W();while(l<a&&Re(i.charCodeAt(l)))l++}if(b("from")){l+=4;while(l<a&&Re(i.charCodeAt(l)))l++;if(l<a){let m=i.charCodeAt(l);if(m===ne||m===ae)A(m)}}while(l<a&&(i.charCodeAt(l)===ke||i.charCodeAt(l)===Se))l++;if(l<a&&i.charCodeAt(l)===Z)l++}function De(m){let d=m.indexOf("from ");if(d===-1)return;let g=d+5;while(g<m.length&&(m.charCodeAt(g)===32||m.charCodeAt(g)===9))g++;if(g>=m.length)return;let y=m.charCodeAt(g);if(y!==39&&y!==34)return;let C=m.indexOf(m[g],g+1);if(C===-1)return;return m.slice(g+1,C)}function ve(m){if(!s)return;let d=m-1;while(d>=0&&Re(i.charCodeAt(d)))d--;if(d<0)return;let g=[],y=!1;while(d>=0){if(d>=1&&i.charCodeAt(d)===U&&i.charCodeAt(d-1)===Oe){let k=i.lastIndexOf("/*",d-2);if(k>=0){g.push(i.slice(k,d+1)),y=!0,d=k-1;while(d>=0&&Re(i.charCodeAt(d)))d--;continue}break}let C=d;while(C>0&&i.charCodeAt(C-1)!==pe)C--;let v=p(C,d+1);if(v.startsWith("//")){if(y)break;let k=[v];d=C-1;while(d>=0&&(i.charCodeAt(d)===pe||i.charCodeAt(d)===be))d--;while(d>=0){let R=d;while(R>0&&i.charCodeAt(R-1)!==pe)R--;let E=p(R,d+1);if(E.startsWith("//")){k.push(E),d=R-1;while(d>=0&&(i.charCodeAt(d)===pe||i.charCodeAt(d)===be))d--}else if(E===""){d=R-1;while(d>=0&&(i.charCodeAt(d)===pe||i.charCodeAt(d)===be))d--}else break}k.reverse(),g.push(k.join(`
|
|
42
|
+
`));continue}break}if(g.length===0)return;return g.reverse(),g}function Ft(m){let d=m,g=!1;while(l<a){let E=i.charCodeAt(l);if(E===Z){l++;break}if(E===ne||E===ae){A(E),g=!0;while(l<a&&(i.charCodeAt(l)===ke||i.charCodeAt(l)===Se))l++;if(l<a&&i.charCodeAt(l)===Z)l++;break}if(E===pe&&g)break;l++}let y=p(d,l),C=y.charCodeAt(7)===116&&(y.startsWith("import type ")||y.startsWith("import type{")),v=!1;{let E=6;while(E<y.length&&(y.charCodeAt(E)===ke||y.charCodeAt(E)===Se))E++;if(E<y.length&&y.charCodeAt(E)===116&&y.startsWith("type",E)){E+=4;while(E<y.length&&(y.charCodeAt(E)===ke||y.charCodeAt(E)===Se))E++}if(E<y.length){let x=y.charCodeAt(E);v=x===ne||x===ae}}let k="";{let E=y.indexOf("from ");if(E!==-1){let x=E+5;while(x<y.length&&(y.charCodeAt(x)===ke||y.charCodeAt(x)===Se))x++;if(x<y.length){let N=y.charCodeAt(x);if(N===ne||N===ae){let M=y.indexOf(String.fromCharCode(N),x+1);if(M!==-1)k=y.slice(x+1,M)}}}else if(v){let x=6;while(x<y.length&&y.charCodeAt(x)!==ne&&y.charCodeAt(x)!==ae)x++;if(x<y.length){let N=y.charCodeAt(x),M=y.indexOf(String.fromCharCode(N),x+1);if(M!==-1)k=y.slice(x+1,M)}}}let R=ve(d);return{kind:"import",name:"",text:y,isExported:!1,isTypeOnly:C,isSideEffect:v,source:k,leadingComments:R,start:d,end:l}}function Pt(){let m=l;return V(_,G),i.slice(m,l)}function $s(m){let d=m.indexOf("(");if(d===-1)return m;let g=m.slice(d);if(g.indexOf("=")===-1)return m;let y=!1;for(let E=0;E<g.length;E++)if(g.charCodeAt(E)===61){let x=E>0?g.charCodeAt(E-1):0,N=E+1<g.length?g.charCodeAt(E+1):0;if(x!==61&&x!==33&&x!==60&&x!==62&&N!==61&&N!==62){y=!0;break}}if(!y)return m;let C=0,v=-1;for(let E=d;E<m.length;E++){let x=m.charCodeAt(E);if(x===40)C++;else if(x===41){if(C--,C===0){v=E;break}}}if(v===-1)return m;let k=m.slice(d,v+1),R=Dt(k);return m.slice(0,d)+R+m.slice(v+1)}function ws(m){let d=m.indexOf("//")!==-1||m.indexOf("/*")!==-1,g=m.split(`
|
|
43
|
+
`),y=[],C=[],v=[],k=!1,R=1/0;for(let N=0;N<g.length;N++){let M=g[N];if(d){if(k){if(M.includes("*/"))k=!1;continue}let B=M.trim();if(B.length===0)continue;let I=B.charCodeAt(0);if(I===U){let xe=B.charCodeAt(1);if(xe===U)continue;if(xe===Oe){if(!B.includes("*/"))k=!0;continue}}if(I===Oe)continue;let P=w(M);if(P.charCodeAt(P.length-1)===Z)P=P.slice(0,-1);P=$s(P);let D=P.trim();if(!D)continue;y.push(P),C.push(D);let j=0;while(j<P.length&&Re(P.charCodeAt(j)))j++;if(D!=="{"&&D!=="}"){if(j<R)R=j}v.push(j)}else{let B=M.length;while(B>0&&(M.charCodeAt(B-1)===ke||M.charCodeAt(B-1)===Se||M.charCodeAt(B-1)===be))B--;if(B===0)continue;let I=B<M.length?M.slice(0,B):M;if(I.charCodeAt(I.length-1)===Z)I=I.slice(0,-1);I=$s(I);let P=I.trim();if(!P)continue;y.push(I),C.push(P);let D=0;while(D<I.length&&Re(I.charCodeAt(D)))D++;if(P!=="{"&&P!=="}"){if(D<R)R=D}v.push(D)}}if(y.length===0)return"{}";if(R===1/0||R<=2)return y.join(`
|
|
44
|
+
`);let E=R-2,x=Array(y.length);for(let N=0;N<y.length;N++){let M=C[N];if(M==="{"){x[N]=M;continue}let B=v[N];if(B>R)x[N]=y[N];else if(B===R&&(M.charCodeAt(0)===G||M.charCodeAt(0)===Ce||M.charCodeAt(0)===ge))x[N]=y[N];else{let I=Math.max(0,B-E);x[N]=" ".repeat(I)+M}}return x.join(`
|
|
45
|
+
`)}function ot(){if(l>=a||i.charCodeAt(l)!==he)return"";let m=l;V(he,oe);let d=i.slice(m,l);if(d.includes(`
|
|
46
|
+
`)){let g="",y=!1;for(let C=0;C<d.length;C++){let v=d.charCodeAt(C);if(v===32||v===9||v===10||v===13){if(!y&&g.length>0)g+=" ",y=!0}else g+=d[C],y=!1}if(g.charCodeAt(1)===32)g=`<${g.slice(2)}`;if(g.charCodeAt(g.length-2)===32)g=`${g.slice(0,-2)}>`;return g}return d}function Ct(){if(l>=a||i.charCodeAt(l)!==Q)return"()";let m=l;return V(Q,ge),i.slice(m,l)}function Dt(m){let d=m.slice(1,-1).trim();if(!d)return"()";if(m.indexOf(`
|
|
47
|
+
`)===-1&&d.indexOf(":")!==-1&&d.indexOf("{")===-1&&d.indexOf("[")===-1&&d.indexOf("=")===-1&&d.indexOf("@")===-1&&d.indexOf("...")===-1){let E=0,x=0,N=0;for(let M=0;M<d.length;M++){let B=d.charCodeAt(M);if(B===Q||B===he||B===_)N++;else if(B===ge||B===oe||B===G)N--;else if(N===0){if(B===qe)E++;else if(B===Ue)x++}}if(E>=x+1){let M=!1;for(let B=0;B<nn.length;B++){let I=nn[B],P=d.indexOf(I);if(P!==-1){let D=P+I.length;if((P===0||!Je(d.charCodeAt(P-1)))&&(D>=d.length||!Je(d.charCodeAt(D)))){M=!0;break}}}if(!M)return m}}let g=[],y=0,C=0,v=!1,k=0;for(let E=0;E<=d.length;E++){if(E===d.length){g.push(d.slice(y).trim());break}let x=d.charCodeAt(E);if(v){if(x===Ye){E++;continue}if(x===k)v=!1;continue}if(x===U&&E+1<d.length){let N=d.charCodeAt(E+1);if(N===Oe){E+=2;while(E+1<d.length&&!(d.charCodeAt(E)===Oe&&d.charCodeAt(E+1)===U))E++;E++;continue}if(N===U){while(E<d.length&&d.charCodeAt(E)!==10)E++;continue}}if(x===ne||x===ae||x===Te){v=!0,k=x;continue}if(x===Q||x===_||x===ue||x===he)C++;else if(x===ge||x===G||x===Ce||x===oe&&!(E>0&&d.charCodeAt(E-1)===$e))C--;else if(x===Ue&&C===0)g.push(d.slice(y,E).trim()),y=E+1}let R=[];for(let E of g){if(!E)continue;let x=E.trim();if(x.startsWith("//")||x.startsWith("/*"))continue;let N=E;{let M=!1,B=0,I=0,P=0;for(let D=0;D<N.length-1;D++){let j=N.charCodeAt(D);if(j===pe){P=D+1;continue}if(M){if(j===Ye){D++;continue}if(j===B)M=!1;continue}if(j===ne||j===ae||j===Te){M=!0,B=j;continue}if(j===_||j===ue||j===Q||j===he){I++;continue}if(j===G||j===Ce||j===ge||j===oe){if(I>0)I--;continue}if(j===U&&N.charCodeAt(D+1)===U){if(I===0){N=N.slice(0,D).trimEnd();break}let xe=N.indexOf(`
|
|
48
|
+
`,D);if(xe===-1){N=N.slice(0,P).trimEnd();break}let vt=N.slice(0,P),nf=N.slice(xe+1);N=`${vt}${nf}`,D=P-1}}}if(!N.trim())continue;R.push(Cs(N))}return`(${R.join(", ")})`}function Ul(m){if(!m.startsWith("{")&&!m.startsWith("["))return m;let d="",g=0,y=0,C=!1,v=0;while(g<m.length){let k=m.charCodeAt(g);if(C){if(k===Ye&&g+1<m.length){d+=m[g]+m[g+1],g+=2;continue}if(k===v)C=!1;d+=m[g],g++;continue}if(k===U&&g+1<m.length){let R=m.charCodeAt(g+1);if(R===Oe){let E=g;g+=2;while(g+1<m.length&&!(m.charCodeAt(g)===Oe&&m.charCodeAt(g+1)===U))g++;g=Math.min(g+2,m.length),d+=m.slice(E,g);continue}if(R===U){let E=g;while(g<m.length&&m.charCodeAt(g)!==10)g++;d+=m.slice(E,g);continue}}if(k===ne||k===ae||k===Te){C=!0,v=k,d+=m[g],g++;continue}if(k===_||k===ue||k===Q)y++;else if(k===G||k===Ce||k===ge)y--;if(y>=1&&k===$e&&(g+1>=m.length||m.charCodeAt(g+1)!==$e&&m.charCodeAt(g+1)!==oe)){while(d.length>0&&(d[d.length-1]===" "||d[d.length-1]==="\t"||d[d.length-1]===`
|
|
49
|
+
`))d=d.slice(0,-1);g++;let R=0;while(g<m.length){let E=m.charCodeAt(g);if(E===ne||E===ae||E===Te){let x=E;g++;while(g<m.length){if(m.charCodeAt(g)===Ye){g+=2;continue}if(m.charCodeAt(g)===x){g++;break}g++}continue}if(E===_||E===ue||E===Q)R++;else if(E===G||E===Ce||E===ge){if(R===0)break;R--}else if(E===Ue&&R===0)break;g++}continue}if(y===1&&k===lt&&g+2<m.length&&m.charCodeAt(g+1)===lt&&m.charCodeAt(g+2)===lt){g+=3;continue}d+=m[g],g++}return d}function Cs(m){let d=m.trim(),g=d.startsWith("...");if(g)d=d.slice(3).trim();while(d.startsWith("@")){let P=1;while(P<d.length&&Je(d.charCodeAt(P)))P++;if(P<d.length&&d.charCodeAt(P)===Q){let D=1;P++;while(P<d.length&&D>0){if(d.charCodeAt(P)===Q)D++;else if(d.charCodeAt(P)===ge)D--;P++}}d=d.slice(P).trim()}let y=!0;while(y){y=!1;for(let P of nn)if(d.startsWith(P)&&d.length>P.length&&!Je(d.charCodeAt(P.length))){let D=d.slice(P.length).trim();if(D.charCodeAt(0)===qe||D.charCodeAt(0)===Br&&D.length>1&&D.charCodeAt(1)===qe)break;d=D,y=!0;break}}let C=-1,v=-1,k=0,R=!1,E=0;for(let P=0;P<d.length;P++){let D=d.charCodeAt(P);if(R){if(D===Ye){P++;continue}if(D===E)R=!1;continue}if(D===U&&P+1<d.length){let j=d.charCodeAt(P+1);if(j===Oe){P+=2;while(P+1<d.length&&!(d.charCodeAt(P)===Oe&&d.charCodeAt(P+1)===U))P++;P++;continue}if(j===U){while(P<d.length&&d.charCodeAt(P)!==10)P++;continue}}if(D===ne||D===ae||D===Te){R=!0,E=D;continue}if(D===Q||D===_||D===ue||D===he)k++;else if(D===ge||D===G||D===Ce||D===oe&&!(P>0&&d.charCodeAt(P-1)===$e))k--;else if(k===0){if(D===qe&&C===-1)C=P;else if(D===$e&&v===-1&&(P===0||d.charCodeAt(P-1)!==$e)&&(P+1>=d.length||d.charCodeAt(P+1)!==$e&&d.charCodeAt(P+1)!==oe))v=P}}let x,N,M=v!==-1;if(C!==-1&&(v===-1||C<v))if(x=d.slice(0,C).trim(),v!==-1)N=d.slice(C+1,v).trim();else N=d.slice(C+1).trim();else if(v!==-1)x=d.slice(0,v).trim(),N=Bi(d.slice(v+1).trim());else x=d,N="unknown";if(x=Ul(x),(x.startsWith("{")||x.startsWith("["))&&x.includes(`
|
|
50
|
+
`)){let P=x.replace(/\s*\n\s*/g," ").replace(/\s+/g," ");if(P.length<=40)x=P;else x=x.split(`
|
|
51
|
+
`).map((D)=>{let j=D.trim();if(!j)return"";if(j==="{"||j==="}"||j==="["||j==="]"||j.startsWith("}")||j.startsWith("]"))return j;return` ${j}`}).join(`
|
|
52
|
+
`)}let B=x.endsWith("?")||M;if(x.endsWith("?"))x=x.slice(0,-1).trim();let I=B&&!g?"?":"";if(g)return`...${x}: ${N}`;return`${x}${I}: ${N}`}function bs(m){let d=0;if(d<m.length&&m.charCodeAt(d)===45)d++;if(d>=m.length)return!1;let g=m.charCodeAt(d);if(g<48||g>57)return!1;while(d<m.length&&m.charCodeAt(d)>=48&&m.charCodeAt(d)<=57)d++;if(d<m.length&&m.charCodeAt(d)===46){if(d++,d>=m.length||m.charCodeAt(d)<48||m.charCodeAt(d)>57)return!1;while(d<m.length&&m.charCodeAt(d)>=48&&m.charCodeAt(d)<=57)d++}return d===m.length}function Bi(m){let d=m.trim();if(d==="true"||d==="false")return"boolean";if(bs(d))return"number";if(d.startsWith("'")&&d.endsWith("'")||d.startsWith('"')&&d.endsWith('"'))return"string";if(d.startsWith("["))return"unknown[]";if(d.startsWith("{"))return"Record<string, unknown>";return"unknown"}function Li(m){let d=m.trim();if(d.endsWith("as const"))d=d.slice(0,-8).trim();if(d==="true"||d==="false")return d;if(bs(d))return d;let g=Xl(d);if(g!==null)return g;return"unknown"}function Xl(m){if(m==="")return null;if(m.charCodeAt(0)===ne||m.charCodeAt(0)===ae){if(jr(m,0,m.charCodeAt(0))===m.length)return m}let d=zl(m,"+");if(d.length>1){let g=!1,y=!0,C=[];for(let v of d){let k=v.trim(),R=k.charCodeAt(0);if((R===ne||R===ae)&&jr(k,0,R)===k.length)g=!0,C.push(Ql(k));else y=!1}if(y)return ef(C.join(""));if(g)return"string";return null}if(/^[\d\s()+*/%.\-]+$/.test(m)&&/\d/.test(m)&&/[+*/%\-\s]/.test(m))return"number";return null}function zl(m,d){let g=[],y=0,C="",v=0;while(v<m.length){let k=m.charCodeAt(v);if(k===ne||k===ae||k===Te){let R=jr(m,v,k);C+=m.slice(v,R),v=R;continue}if(k===U&&(m.charCodeAt(v+1)===U||m.charCodeAt(v+1)===42)){if(m.charCodeAt(v+1)===U){let x=m.indexOf(`
|
|
53
|
+
`,v+2),N=x===-1?m.length:x;C+=m.slice(v,N),v=N;continue}let R=m.indexOf("*/",v+2),E=R===-1?m.length:R+2;C+=m.slice(v,E),v=E;continue}if(k===Q||k===ue||k===_)y++;else if(k===ge||k===Ce||k===G)y--;if(m[v]===d&&y===0){g.push(C),C="",v++;continue}C+=m[v],v++}return g.push(C),g}function Ql(m){return m.slice(1,-1).replace(/\\(.)/g,(d,g)=>{if(g==="n")return`
|
|
54
|
+
`;if(g==="t")return"\t";if(g==="r")return"\r";if(g==="0")return"\x00";return g})}function ef(m){return`'${m.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}'`}function Sr(m){if(m.endsWith("as const"))return null;let d=0,g=-1;for(let y=0;y<m.length;y++){let C=m.charCodeAt(y);if(C===ne||C===ae||C===Te)y=jr(m,y,C)-1;else if(C===123||C===91||C===40)d++;else if(C===125||C===93||C===41)d--;else if(d===0&&C===32&&y+4<=m.length&&m.substring(y,y+4)===" as ")g=y}if(g===-1)return null;return m.slice(g+4).trim()||null}function or(){if(h(),l<a&&i.charCodeAt(l)===qe){l++,h();let m=l,d=0;while(l<a){if(O())continue;let g=i.charCodeAt(l);if(g===Q||g===ue||g===he)d++;else if(g===ge||g===Ce||g===oe&&!Y())d--;else if(g===_)if(d>0)d++;else{let y=p(m,l),C=(v)=>{let k=y.length-v.length;return k>=0&&y.endsWith(v)&&(k===0||!Je(y.charCodeAt(k-1)))};if(y.length===0||y.endsWith("|")||y.endsWith("&")||C("is")||C("extends"))d++;else break}else if(g===G){if(d===0)break;d--}else if(d===0&&g===Z)break;if(d===0&&J())break;l++}return p(m,l)}return""}function bt(m,d,g,y){l+=8,h();let C=l<a&&i.charCodeAt(l)===Oe;if(C)l++,h();let v=W();if(!v&&!y)return null;h();let k=ot();h();let R=Ct();h();let E=or(),x=E.length>0;if(!E)if(g&&C)E="AsyncGenerator<unknown, void, unknown>";else if(C)E="Generator<unknown, void, unknown>";else if(g)E="Promise<void>";else E="void";h();let N=!1;if(l<a&&i.charCodeAt(l)===_){N=!0;let P=l+1;if(V(_,G),!o&&!x&&!C)E=lr(i.slice(P,l-1),g,R)}else if(l<a&&i.charCodeAt(l)===Z)l++;let M=Dt(R),B=`${d?y?"export default function ":"export declare function ":"declare function "}${v||(y?"":"default")}${k}${M}: ${E};`,I=ve(m);if(N)u.add(f.length);return{kind:"function",name:v||"default",text:B,isExported:d,isDefault:y,isAsync:g,isGenerator:C,returnType:E,generics:k||void 0,leadingComments:I,start:m,end:l}}function Mt(m,d,g){l+=d.length,h();let y=[];do{if(h(),l>=a)break;let C=i.charCodeAt(l);if(C===_||C===ue)return ie(),y;let v=W();if(!v)return ie(),y;h();let k,R,E=!1;if(l<a&&i.charCodeAt(l)===qe){l++,h();let M=l,B=0;while(l<a){if(O())continue;let I=i.charCodeAt(l);if(I===Q||I===_||I===ue||I===he)B++;else if(I===ge||I===G||I===Ce||I===oe&&!Y())B--;else if(B===0&&(I===Z||I===Ue))break;else if(B===0&&I===$e&&!we())break;if(B===0&&F())break;l++}k=p(M,l)}if(l<a&&i.charCodeAt(l)===$e)if(o&&k&&(!s||!ic(k)))kr();else{l++,h();let M=l,B=0,I=0,P=0;while(l<a){if(O())continue;let D=i.charCodeAt(l);if(D===Q||D===_||D===ue)B++;else if(D===ge||D===G||D===Ce)B--;else if(D===he&&B===0){let j=As(l);if(j!==null)P=Math.max(0,P+j);else if(l+1>=a||i.charCodeAt(l+1)!==$e)I++}else if(D===oe&&B===0&&P===0&&!Y()){if(I>0&&(l+1>=a||i.charCodeAt(l+1)!==$e))I--}else if(B===0&&I===0&&P===0&&(D===Z||D===Ue))break;if(B===0&&I===0&&P===0&&F())break;l++}if(R=p(M,l),R.endsWith(" as const")||R==="const"){if(E=!0,!k){let D=R.endsWith(" as const")?R.slice(0,-9).trim():R,j=Li(D);k=j!=="unknown"?j:void 0}}else if(!k){let D=Sr(R);if(D)k=D}}if(l<a){let M=i.charCodeAt(l);if(M===Ue){l++;continue}if(M===Z)l++}let x=ve(m),N=`${g?"export ":""}declare ${d} ${v}: ${k||"unknown"};`;y.push({kind:"variable",name:v,text:N,isExported:g,typeAnnotation:k,value:R,modifiers:E?[d,"const assertion"]:[d],leadingComments:x,start:m,end:l});break}while(l<a);return y}function As(m){if(i.charCodeAt(m)!==he||m+1>=a)return null;let d=i.charCodeAt(m+1);if(d===oe)return 1;if(d===U)return-1;if(!Rt(d))return null;let g=m+2;while(g<a){let x=i.charCodeAt(g);if(!Je(x)&&x!==lt&&x!==58&&x!==45)break;g++}let y=i.slice(m+1,g),C=i.charCodeAt(g);if(C>32&&C!==oe&&C!==U)return null;let v=0,k=0,R=g;for(;R<a;R++){let x=i.charCodeAt(R);if(k!==0){if(x===Ye)R++;else if(x===k)k=0;continue}if(x===ne||x===ae||x===Te)k=x;else if(x===_)v++;else if(x===G&&v>0)v--;else if(x===oe&&v===0)break}if(R>=a)return null;let E=R-1;while(E>m&&i.charCodeAt(E)<=32)E--;if(i.charCodeAt(E)===U)return 0;return i.indexOf(`</${y}`,R+1)===-1?null:1}function ji(m,d){l+=9,h();let g=W();h();let y=ot();h();let C="";if(b("extends")){l+=7,h();let x=l,N=0;while(l<a){if(O())continue;let M=i.charCodeAt(l);if(M===he)N++;else if(M===oe&&!Y())N--;else if(M===_&&N===0)break;l++}C=p(x,l)}h();let v=l<a&&i.charCodeAt(l)===_?Pt():"{}",k=ws(v),R=`${d?"export ":""}declare interface ${g}${y}${C?` extends ${C}`:""} ${k}`,E=ve(m);return{kind:"interface",name:g,text:R,isExported:d,extends:C||void 0,generics:y||void 0,leadingComments:E,start:m,end:l}}function _i(m,d){l+=4,h();let g=W();h();let y=ot();if(h(),l<a&&i.charCodeAt(l)===$e)l++;h();let C=l,v=0;while(l<a){if(O())continue;let x=i.charCodeAt(l);if(x===Q||x===_||x===ue||x===he)v++;else if(x===ge||x===G||x===Ce||x===oe&&!Y())v--;else if(v===0&&x===Z)break;if(v===0&&F())break;l++}let k=p(C,l);if(l<a&&i.charCodeAt(l)===Z)l++;let R=`${d?"export ":""}type ${g}${y} = ${k}`,E=ve(m);return{kind:"type",name:g,text:R,isExported:d,generics:y||void 0,leadingComments:E,start:m,end:l}}function It(m,d,g){l+=4,h();let y=W();h();let C=l;if(l<a&&i.charCodeAt(l)===_)V(_,G);let v=p(m,l),k=ve(m);return{kind:"enum",name:y,text:v,isExported:d,modifiers:g?["const"]:void 0,leadingComments:k,start:m,end:l}}function At(m,d,g,y=!1){l+=5,h();let C=W()||"AnonymousClass";h();let v=ot();h();let k="";if(b("extends")){l+=7,h();let M=l,B=0;while(l<a){if(O())continue;let I=i.charCodeAt(l);if(I===he)B++;else if(I===oe&&!Y())B--;else if(B===0&&(I===_||b("implements")))break;l++}k=p(M,l)}let R;if(b("implements")){l+=10,h();let M=l,B=0;while(l<a){if(O())continue;let P=i.charCodeAt(l);if(P===he)B++;else if(P===oe&&!Y())B--;else if(B===0&&P===_)break;l++}let I=p(M,l);if(I)R=I.split(",").map((P)=>P.trim())}h();let E=Ji(),x=`${d?y?"export default ":"export declare ":"declare "}${g?"abstract ":""}class ${C}${v}${k?` extends ${k}`:""}${R&&R.length>0?` implements ${R.join(", ")}`:""} ${E}`,N=ve(m);return{kind:"class",name:C,text:x,isExported:d,isDefault:y,extends:k||void 0,implements:R,generics:v||void 0,modifiers:g?["abstract"]:void 0,leadingComments:N,start:m,end:l}}function Ji(){if(l>=a||i.charCodeAt(l)!==_)return"{}";l++;let m=[];while(l<a){if(h(),l>=a)break;if(i.charCodeAt(l)===G){l++;break}if(i.charCodeAt(l)===Z){l++;continue}if(b("static")&&vs("static")===_){l+=6,h(),V(_,G);continue}let d=!1,g=!1,y=!1,C=!1,v=!1,k=!1,R=!1,E=!1,x=!0;while(x){if(h(),b("private")){d=!0,l+=7;continue}if(b("protected")){g=!0,l+=9;continue}if(b("public")){l+=6;continue}if(b("static")){y=!0,l+=6;continue}if(b("abstract")){C=!0,l+=8;continue}if(b("readonly")){v=!0,l+=8;continue}if(b("override")){k=!0,l+=8;continue}if(b("accessor")){R=!0,l+=8;continue}if(b("async")){E=!0,l+=5;continue}if(b("declare")){l+=7;continue}break}if(h(),l>=a||i.charCodeAt(l)===G)break;if(i.charCodeAt(l)===Lr)d=!0;if(d){Hi();continue}let N=" ";if(g)N+="protected ";if(y)N+="static ";if(C)N+="abstract ";if(v)N+="readonly ";if(b("constructor")){l+=11,h();let M=Ct();if(h(),tf(M,m),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;let B=Dt(M);m.push(` constructor${B};`)}else if(b("get"))if(l+=3,h(),l<a&&(Rt(i.charCodeAt(l))||i.charCodeAt(l)===ue||i.charCodeAt(l)===Lr)){let M=Ki();if(M.startsWith("#")){if(h(),l<a&&i.charCodeAt(l)===Q)Ct();if(h(),or(),h(),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;continue}h(),Ct(),h();let B=or()||"unknown";if(h(),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;m.push(`${N}get ${M}(): ${B};`)}else xs("get",N,y,v,E,m);else if(b("set"))if(l+=3,h(),l<a&&(Rt(i.charCodeAt(l))||i.charCodeAt(l)===ue||i.charCodeAt(l)===Lr)){let M=Ki();if(M.startsWith("#")){if(h(),l<a&&i.charCodeAt(l)===Q)Ct();if(h(),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;continue}h();let B=Ct();if(h(),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;let I=Dt(B);m.push(`${N}set ${M}${I};`)}else xs("set",N,y,v,E,m);else{let M=i.charCodeAt(l)===Oe;if(M)l++,h();let B=Ki();if(!B){Hi();continue}Es(B,N,y,v,M,C,E,m)}}return`{
|
|
44
55
|
${m.join(`
|
|
45
56
|
`)}
|
|
46
|
-
}`}function
|
|
57
|
+
}`}function Ki(){if(l>=a)return"";let m=i.charCodeAt(l);if(m===ue){let d=l;return V(ue,Ce),i.slice(d,l)}if(m===Lr)return l++,`#${W()}`;return W()}function vs(m){let d=l+m.length;while(d<a&&Re(i.charCodeAt(d)))d++;return d<a?i.charCodeAt(d):0}function Hi(){let m=0;while(l<a){if(O())continue;let d=i.charCodeAt(l);if(d===_||d===Q)m++;else if(d===G||d===ge){if(m===0)return;m--}else if(d===Z&&m===0){l++;return}if(m===0&&J())return;l++}}function xs(m,d,g,y,C,v){Es(m,d,g,y,!1,!1,C,v)}function Es(m,d,g,y,C,v,k,R){if(h(),l>=a)return;let E=i.charCodeAt(l),x=!1;if(E===Br)x=!0,l++,h();if(l<a&&i.charCodeAt(l)===33)l++,h();let N=l<a?i.charCodeAt(l):0;if(N===Q||N===he){let M=N===he?ot():"";h();let B=Ct();h();let I=or(),P=I.length>0;if(!I)if(k&&C)I="AsyncGenerator<unknown, void, unknown>";else if(C)I="Generator<unknown, void, unknown>";else if(k)I="Promise<void>";else I="void";if(h(),l<a&&i.charCodeAt(l)===_){let vt=l+1;if(V(_,G),!o&&!P&&!C)I=lr(i.slice(vt,l-1),k,B)}else if(l<a&&i.charCodeAt(l)===Z)l++;let D=Dt(B),j=x?"?":"",xe=C?"*":"";R.push(`${d}${xe}${m}${j}${M}${D}: ${I};`)}else if(N===qe||N===$e||N===Z||N===G||N===pe||N===be){let M="";if(N===qe){l++,h();let P=l,D=0;while(l<a){if(O())continue;let j=i.charCodeAt(l);if(j===Q||j===_||j===ue||j===he)D++;else if(j===ge||j===G||j===Ce||j===oe&&!Y()){if(D===0)break;D--}else if(D===0&&(j===Z||j===Ue))break;else if(D===0&&j===$e&&!we())break;if(D===0&&J())break;l++}M=p(P,l)}let B="";if(l<a&&i.charCodeAt(l)===$e)if(o&&M){l++;let P=0;while(l<a){if(O())continue;let D=i.charCodeAt(l);if(D===Q||D===_||D===ue)P++;else if(D===ge||D===G||D===Ce){if(P===0&&D===G)break;P--}else if(P===0&&D===Z)break;if(P===0&&J())break;l++}}else{l++,h();let P=l,D=0;while(l<a){if(O())continue;let j=i.charCodeAt(l);if(j===Q||j===_||j===ue)D++;else if(j===ge||j===G||j===Ce){if(D===0&&j===G)break;D--}else if(D===0&&j===Z)break;if(D===0&&J())break;l++}B=p(P,l)}if(l<a&&i.charCodeAt(l)===Z)l++;if(!M)if(B){let P=Sr(B);if(P)M=P;else M=B.endsWith("as const")||g&&y?Li(B):Bi(B)}else M="unknown";let I=x?"?":"";R.push(`${d}${m}${I}: ${M};`)}else Hi()}function tf(m,d){let g=m.slice(1,-1).trim();if(!g)return;let y=[],C=0,v=0,k=!1,R=0;for(let E=0;E<=g.length;E++){if(E===g.length){y.push(g.slice(C).trim());break}let x=g.charCodeAt(E);if(k){if(x===Ye){E++;continue}if(x===R)k=!1;continue}if(x===ne||x===ae||x===Te){k=!0,R=x;continue}if(x===Q||x===_||x===ue||x===he)v++;else if(x===ge||x===G||x===Ce||x===oe&&!(E>0&&g.charCodeAt(E-1)===$e))v--;else if(x===Ue&&v===0)y.push(g.slice(C,E).trim()),C=E+1}for(let E of y){let x=E.startsWith("public ")||E.startsWith("public\t"),N=E.startsWith("protected ")||E.startsWith("protected\t"),M=E.startsWith("private ")||E.startsWith("private\t"),B=E.includes("readonly ");if(!x&&!N&&!M&&!B)continue;if(M)continue;let I=E,P=[];if(x){let xe=6;while(xe<I.length&&Re(I.charCodeAt(xe)))xe++;I=I.slice(xe),P.push("public")}if(N){let xe=9;while(xe<I.length&&Re(I.charCodeAt(xe)))xe++;I=I.slice(xe),P.push("protected")}if(B){let xe=I.indexOf("readonly ");if(xe!==-1){let vt=xe+8;while(vt<I.length&&Re(I.charCodeAt(vt)))vt++;I=I.slice(0,xe)+I.slice(vt)}P.push("readonly")}let D=P.length>0?`${P.join(" ")} `:"",j=Cs(I);d.push(` ${D}${j};`)}}function Yi(m=" "){if(l>=a||i.charCodeAt(l)!==_)return"{}";l++;let d=[];while(l<a){if(h(),l>=a)break;if(i.charCodeAt(l)===G){l++;break}if(i.charCodeAt(l)===Z){l++;continue}let g=!1;if(b("export"))g=!0,l+=6,h();if(b("declare"))l+=7,h();let y=g?"export ":"";if(b("function")||b("async")&&rf("async","function")){let C=!1;if(b("async"))C=!0,l+=5,h();if(l+=8,h(),l<a&&i.charCodeAt(l)===Oe)l++,h();let v=W();h();let k=ot();h();let R=Ct();h();let E=or();if(!E)E=C?"Promise<void>":"void";if(h(),l<a&&i.charCodeAt(l)===_)V(_,G);else if(l<a&&i.charCodeAt(l)===Z)l++;let x=Dt(R);d.push(`${m}${y}function ${v}${k}${x}: ${E};`)}else if(b("const")||b("let")||b("var")){let C=b("const")?"const":b("let")?"let":"var";l+=C.length,h();let v=W();if(!v){ie();continue}h();let k="";if(l<a&&i.charCodeAt(l)===qe){l++,h();let E=l,x=0;while(l<a){if(O())continue;let N=i.charCodeAt(l);if(N===Q||N===_||N===ue||N===he)x++;else if(N===ge||N===G||N===Ce||N===oe&&!Y())x--;else if(x===0&&(N===Z||N===Ue))break;else if(x===0&&N===$e&&!we())break;if(x===0&&F())break;l++}k=p(E,l)}let R="";if(l<a&&i.charCodeAt(l)===$e){l++,h();let E=l,x=0;while(l<a){if(O())continue;let N=i.charCodeAt(l);if(N===Q||N===_||N===ue||N===he)x++;else if(N===ge||N===G||N===Ce||N===oe&&!Y())x--;else if(x===0&&(N===Z||N===Ue))break;if(x===0&&F())break;l++}R=p(E,l)}if(l<a&&i.charCodeAt(l)===Z)l++;if(!k&&R){let E=Sr(R);if(E)k=E;else if(C==="const")k=Li(R);else k=Bi(R)}if(!k)k="unknown";d.push(`${m}${y}${C} ${v}: ${k};`)}else if(b("interface")){l+=9,h();let C=W();h();let v=ot();h();let k="";if(b("extends")){l+=7,h();let E=l,x=0;while(l<a){if(O())continue;let N=i.charCodeAt(l);if(N===he)x++;else if(N===oe&&!Y())x--;else if(N===_&&x===0)break;l++}k=p(E,l)}let R=ws(Pt());d.push(`${m}${y}interface ${C}${v}${k?` extends ${k}`:""} ${R}`)}else if(b("type")){l+=4,h();let C=W();h();let v=ot();if(h(),l<a&&i.charCodeAt(l)===$e){l++,h();let k=l,R=0;while(l<a){if(O())continue;let x=i.charCodeAt(l);if(x===Q||x===_||x===ue||x===he)R++;else if(x===ge||x===G||x===Ce||x===oe&&!Y())R--;else if(R===0&&x===Z)break;if(R===0&&F())break;l++}let E=p(k,l);if(l<a&&i.charCodeAt(l)===Z)l++;d.push(`${m}${y}type ${C}${v} = ${E}`)}}else if(b("class")){l+=5,h();let C=W();h();let v=ot();h();let k=l,R=0;while(l<a){if(O())continue;let M=i.charCodeAt(l);if(M===he)R++;else if(M===oe&&!Y())R--;else if(M===_&&R===0)break;l++}let E=p(k,l),x=E?` ${E}`:"",N=Ji();d.push(`${m}${y}class ${C}${v}${x} ${N}`)}else if(b("enum")){l+=4,h();let C=W();h();let v=Pt();d.push(`${m}${y}enum ${C} ${v}`)}else if(b("namespace")||b("module")){let C=b("namespace")?"namespace":"module";l+=C.length,h();let v=W();h();let k=Yi(m);d.push(`${m}${y}${C} ${v} ${k}`)}else if(b("abstract"))if(l+=8,h(),b("class")){l+=5,h();let C=W();h();let v=ot();h();let k=l,R=0;while(l<a){if(O())continue;let M=i.charCodeAt(l);if(M===he)R++;else if(M===oe&&!Y())R--;else if(M===_&&R===0)break;l++}let E=p(k,l),x=E?` ${E}`:"",N=Ji();d.push(`${m}${y}abstract class ${C}${v}${x} ${N}`)}else ie();else if(g&&b("default")){l+=7,h();let C=l;ie();let v=p(C,l);if(v.charCodeAt(v.length-1)===Z)v=v.slice(0,-1);if(v)d.push(`${m}export default ${v};`)}else if(!g&&(i.charCodeAt(l)===ne||i.charCodeAt(l)===ae||i.charCodeAt(l)===Te))ie();else ie()}if(d.length===0)return"{}";return`{
|
|
47
58
|
${d.join(`
|
|
48
59
|
`)}
|
|
49
|
-
}`}function
|
|
50
|
-
`,t+2);return r===-1?e.length:r+1}if(e[t+1]==="*"){let r=e.indexOf("*/",t+2);return r===-1?e.length:r+2}return t+1}function
|
|
51
|
-
|
|
52
|
-
`)&&
|
|
53
|
-
|
|
60
|
+
}`}function rf(m,d){let g=l+m.length;while(g<a&&Re(i.charCodeAt(g)))g++;for(let y=0;y<d.length;y++)if(g+y>=a||i.charCodeAt(g+y)!==d.charCodeAt(y))return!1;return g+d.length>=a||!Je(i.charCodeAt(g+d.length))}function Bt(m,d,g){l+=g.length,h();let y="",C=i.charCodeAt(l);if(C===ne||C===ae){let x=l;A(C),y=i.slice(x,l)}else{y=W();while(l<a&&i.charCodeAt(l)===lt)l++,y+=`.${W()}`}h();let v=l<a&&i.charCodeAt(l)===_?Yi():"{}",k=`${d?"export ":""}declare ${g} ${y} ${v}`,R=ve(m),E=y.startsWith("'")||y.startsWith('"');return{kind:"module",name:y,text:k,isExported:d,source:E?y.slice(1,-1):void 0,leadingComments:R,start:m,end:l}}function Os(m,d){ie();let g=p(d,l);if(g.charCodeAt(g.length-1)===Z)g=g.slice(0,-1).trimEnd();if(!g)return;let y=Rt(g.charCodeAt(0));for(let x=1;y&&x<g.length;x++)y=Je(g.charCodeAt(x));let C=ve(m);if(y){f.push({kind:"export",name:"default",text:`export default ${g};`,isExported:!0,isTypeOnly:!1,leadingComments:C,start:m,end:l});return}let v="__dtsx_default_export__",k=1;while(i.includes(v))v=`__dtsx_default_export_${k++}__`;let R=Sr(g)||Ee(g,!1),E=R==="unknown"&&rc(g)?`typeof ${g}`:R;f.push({kind:"variable",name:v,text:`declare const ${v}: ${E};`,isExported:!1,typeAnnotation:E,modifiers:["const"],start:m,end:l}),f.push({kind:"export",name:"default",text:`export default ${v};`,isExported:!0,isTypeOnly:!1,leadingComments:C,start:m,end:l})}while(l<a){if(h(),l>=a)break;let m=l,d=i.charCodeAt(l);if(d===105&&b("import"))f.push(Ft(m));else if(d===101&&b("export")){l+=6,h();let g=i.charCodeAt(l);if(g===100&&b("default")){l+=7,h();let y=l,C=i.charCodeAt(l);if(C===102&&b("function")){let v=bt(m,!0,!1,!0);if(v)f.push(v)}else if(C===97&&b("async")&&vs("async")!==Z)if(l+=5,h(),b("function")){let v=bt(m,!0,!0,!0);if(v)f.push(v)}else Os(m,y);else if(C===99&&b("class")){let v=At(m,!0,!1,!0);f.push(v)}else if(C===97&&b("abstract")){if(l+=8,h(),b("class")){let v=At(m,!0,!0,!0);f.push(v)}}else Os(m,y)}else if(g===116&&b("type")){let y=l;if(l+=4,h(),l<a&&i.charCodeAt(l)===_){kt();let C=p(m,l),v=ve(m);f.push({kind:"export",name:"",text:C,isExported:!0,isTypeOnly:!0,source:De(C),leadingComments:v,start:m,end:l})}else if(l<a&&i.charCodeAt(l)===Oe){wt();let C=p(m,l);f.push({kind:"export",name:"",text:C,isExported:!0,isTypeOnly:!0,source:De(C),start:m,end:l})}else{l=y;let C=_i(m,!0);f.push(C)}}else if(g===105&&b("interface")){let y=ji(m,!0);f.push(y)}else if(g===102&&b("function")){let y=bt(m,!0,!1,!1);if(y)f.push(y)}else if(g===97&&b("async"))if(l+=5,h(),b("function")){let y=bt(m,!0,!0,!1);if(y)f.push(y)}else ie();else if(g===99)if(b("class")){let y=At(m,!0,!1);f.push(y)}else if(b("const")){let y=l;if(l+=5,h(),b("enum")){l=y+5,h();let C=It(m,!0,!0);f.push(C)}else{l=y;let C=Mt(m,"const",!0);for(let v=0;v<C.length;v++)f.push(C[v])}}else ie();else if(g===97&&b("abstract")){if(l+=8,h(),b("class")){let y=At(m,!0,!0);f.push(y)}}else if(g===108&&b("let")){let y=Mt(m,"let",!0);for(let C=0;C<y.length;C++)f.push(y[C])}else if(g===118&&b("var")){let y=Mt(m,"var",!0);for(let C=0;C<y.length;C++)f.push(y[C])}else if(g===101&&b("enum")){let y=It(m,!0,!1);f.push(y)}else if(g===100&&b("declare"))l+=7,h(),ks(m,!0);else if(g===110&&b("namespace")&&L(9)){let y=Bt(m,!0,"namespace");f.push(y)}else if(g===109&&b("module")&&L(6)){let y=Bt(m,!0,"module");f.push(y)}else if(g===_){kt();let y=p(m,l),C=y.includes("export type"),v=ve(m);f.push({kind:"export",name:"",text:y,isExported:!0,isTypeOnly:C,source:De(y),leadingComments:v,start:m,end:l})}else if(g===Oe){wt();let y=p(m,l),C=ve(m);f.push({kind:"export",name:"",text:y,isExported:!0,isTypeOnly:!1,source:De(y),leadingComments:C,start:m,end:l})}else{ie();let y=p(m,l);if(y)f.push({kind:"export",name:"",text:y,isExported:!0,start:m,end:l})}}else if(d===100&&b("declare"))l+=7,h(),ks(m,!1);else if(d===105&&b("interface")){let g=ji(m,!1);c.set(g.name,g)}else if(d===116&&b("type")){let g=_i(m,!1);c.set(g.name,g),f.push(g)}else if(d===102&&b("function")){let g=bt(m,!1,!1,!1);if(g)c.set(g.name,g);else ie()}else if(d===97)if(b("async")){let g=l;if(l+=5,h(),b("function")){let y=bt(m,!1,!0,!1);if(y)c.set(y.name,y);else l=g,ie()}else l=g,ie()}else if(b("abstract"))if(l+=8,h(),b("class")){let g=At(m,!1,!1);c.set(g.name,g),f.push(g)}else ie();else l++,ie();else if(d===99)if(b("class")){let g=At(m,!1,!1);c.set(g.name,g),f.push(g)}else if(b("const")){let g=l;if(l+=5,h(),b("enum")){l=g+5,h();let y=It(m,!1,!0);c.set(y.name,y),f.push(y)}else{l=g;let y=Mt(m,"const",!1);for(let C=0;C<y.length;C++)c.set(y[C].name,y[C])}}else l++,ie();else if(d===101&&b("enum")){let g=It(m,!1,!1);c.set(g.name,g),f.push(g)}else if(d===108&&b("let"))ie();else if(d===118&&b("var"))ie();else if(d===109&&b("module")&&L(6)){let g=Bt(m,!1,"module");f.push(g)}else if(d===110&&b("namespace")&&L(9)){let g=Bt(m,!1,"namespace");f.push(g)}else{let g=i.charCodeAt(l);if(g===Z)l++;else if(g===ne||g===ae){if(A(g),l<a&&i.charCodeAt(l)===Z)l++}else if(g===Te){if($(),l<a&&i.charCodeAt(l)===Z)l++}else if(g===ec){if(l++,W(),h(),l<a&&i.charCodeAt(l)===lt)l++,W(),h();if(l<a&&i.charCodeAt(l)===Q)V(Q,ge)}else l++,ie()}}if(c.size>0)nc(f,c);if(u.size>0){let m=new Map;for(let g of f)if(g.kind==="function")m.set(g.name,(m.get(g.name)||0)+1);let d=new Set;for(let[g,y]of m)if(y>1)d.add(g);if(d.size>0){let g=new Set;for(let y of d)for(let C=f.length-1;C>=0;C--)if(f[C].kind==="function"&&f[C].name===y&&u.has(C)){g.add(C);break}if(g.size>0){let y=[...g].sort((C,v)=>v-C);for(let C of y)f.splice(C,1)}}}return f;function ks(m,d){if(b("function")){let g=bt(m,d,!1,!1);if(g)f.push(g)}else if(b("async")){if(l+=5,h(),b("function")){let g=bt(m,d,!0,!1);if(g)f.push(g)}}else if(b("class")){let g=At(m,d,!1);f.push(g)}else if(b("abstract")){if(l+=8,h(),b("class")){let g=At(m,d,!0);f.push(g)}}else if(b("interface")){let g=ji(m,d);f.push(g)}else if(b("type")){let g=_i(m,d);f.push(g)}else if(b("enum")){let g=It(m,d,!1);f.push(g)}else if(b("const")){let g=l;if(l+=5,h(),b("enum")){l=g+5,h();let y=It(m,d,!0);f.push(y)}else if(d){l=g;let y=Mt(m,"const",!0);for(let C=0;C<y.length;C++)f.push(y[C])}else ie()}else if(b("let")||b("var"))if(d){let g=b("let")?"let":"var",y=Mt(m,g,!0);for(let C=0;C<y.length;C++)f.push(y[C])}else ie();else if(b("module")){let g=Bt(m,d,"module");f.push(g)}else if(b("namespace")){let g=Bt(m,d,"namespace");f.push(g)}else if(b("global")){l+=6,h();let g=`declare global ${l<a&&i.charCodeAt(l)===_?Yi():"{}"}`,y=ve(m);f.push({kind:"module",name:"global",text:g,isExported:!1,leadingComments:y,start:m,end:l})}else ie()}}function Qs(e,t){let r=0,n=e.length;while(r<n){let i=e.charCodeAt(r);if(i>=65&&i<=90||i>=97&&i<=122||i===95||i===36||i>127){let s=r;r++;while(r<n){let o=e.charCodeAt(r);if(o>=65&&o<=90||o>=97&&o<=122||o>=48&&o<=57||o===95||o===36||o>127)r++;else break}t.add(e.substring(s,r))}else r++}}function eo(e,t){let r=0;while(r<e.length){let n=e.charCodeAt(r);if(n===ne||n===ae||n===Te){let u=n;r++;while(r<e.length)if(e.charCodeAt(r)===Ye)r+=2;else if(e.charCodeAt(r++)===u)break;continue}if(n===U&&e.charCodeAt(r+1)===U){r+=2;while(r<e.length&&e.charCodeAt(r)!==pe&&e.charCodeAt(r)!==be)r++;continue}if(n===U&&e.charCodeAt(r+1)===Oe){let u=e.indexOf("*/",r+2);r=u===-1?e.length:u+2;continue}if(!Rt(n)){r++;continue}let i=r++;while(r<e.length&&Je(e.charCodeAt(r)))r++;let s=i-1,o=r;while(s>=0&&Re(e.charCodeAt(s)))s--;while(o<e.length&&Re(e.charCodeAt(o)))o++;let a=s>=0?e.charCodeAt(s):0,f=o<e.length?e.charCodeAt(o):0,c=i>=3&&e.slice(i-3,i)==="...";if(f===qe||a===lt&&!c)continue;if(f===Q&&(a===_||a===Ue))continue;t.add(e.slice(i,r))}}function nc(e,t){let r=new Set,n=new Set;for(let o of e)n.add(o.name);let i=new Set,s=[];for(let o=0;o<e.length;o++){let a=e[o];if(a.kind!=="import"){if(s.push(a.text),Qs(a.text,i),typeof a.value==="string")eo(a.value,i)}}for(;;){let o=[];for(let[c,u]of t){if(r.has(c))continue;if(i.has(c)){if(!n.has(c))o.push(u),n.add(c);r.add(c)}}if(o.length===0)break;o.sort((c,u)=>(c.start??1/0)-(u.start??1/0));let a=[],f=0;for(let c=0;c<e.length;c++){let u=e[c].start??1/0;while(f<o.length&&(o[f].start??1/0)<=u)a.push(o[f++]);a.push(e[c])}while(f<o.length)a.push(o[f++]);e.length=0;for(let c=0;c<a.length;c++)e.push(a[c]);for(let c of o)if(c.kind!=="import"){if(s.push(c.text),Qs(c.text,i),typeof c.value==="string")eo(c.value,i)}}}var ke=32,Se=9,pe=10,be=13,U=47,Oe=42,ne=39,ae=34,Te=96,Ye=92,_=123,G=125,Q=40,ge=41,ue=91,Ce=93,he=60,oe=62,Z=59,qe=58,$e=61,Ue=44,lt=46,Br=63,Lr=35,ec=64,to=36,tc=95,nn;var so=de(()=>{rn();nn=["public","protected","private","readonly","override"]});function ao(e){return e.endsWith(".vue")}function sc(e){let t={script:null,scriptSetup:null},r=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,n;while((n=r.exec(e))!==null){let i=n[1]||"",s=/lang\s*=\s*["']([^"']+)["']/i.exec(i)?.[1]?.toLowerCase()??"js",o={content:n[2]??"",attrs:i,setup:/\bsetup\b/.test(i),lang:s};if(o.setup)t.scriptSetup=o;else t.script=o}return t}function Ge(e,t){let r=e[t];t++;while(t<e.length){let n=e[t];if(n==="\\"){t+=2;continue}if(n===r)return t+1;t++}return t}function Xe(e,t){t++;let r=0;while(t<e.length){let n=e[t];if(n==="\\"){t+=2;continue}if(n==="`"&&r===0)return t+1;if(n==="$"&&e[t+1]==="{"){r++,t+=2;continue}if(n==="}"){if(r>0)r--;t++;continue}t++}return t}function ft(e,t){if(e[t+1]==="/"){let r=e.indexOf(`
|
|
61
|
+
`,t+2);return r===-1?e.length:r+1}if(e[t+1]==="*"){let r=e.indexOf("*/",t+2);return r===-1?e.length:r+2}return t+1}function on(e,t){let r=e[t];if(r==='"'||r==="'")return Ge(e,t);if(r==="`")return Xe(e,t);if(r==="/"&&(e[t+1]==="/"||e[t+1]==="*"))return ft(e,t);return t}function an(e){let t=e.split(""),r=0;while(r<e.length){let n=on(e,r);if(n>r){for(let i=r;i<n;i++)if(t[i]!==`
|
|
62
|
+
`&&t[i]!=="\r")t[i]=" ";r=n;continue}r++}return t.join("")}function Me(e,t,r,n){let i=0,s=t;while(s<e.length){let o=e[s];if(o==='"'||o==="'"){s=Ge(e,s);continue}if(o==="`"){s=Xe(e,s);continue}if(o==="/"&&(e[s+1]==="/"||e[s+1]==="*")){s=ft(e,s);continue}if(o===r)i++;else if(o===n){if(i--,i===0)return s}s++}return-1}function ln(e,t){let r=0,n=t;while(n<e.length){let i=e[n];if(i==='"'||i==="'"){n=Ge(e,n);continue}if(i==="`"){n=Xe(e,n);continue}if(i==="/"&&(e[n+1]==="/"||e[n+1]==="*")){n=ft(e,n);continue}if(i==="="&&e[n+1]===">"){n+=2;continue}if(i==="<")r++;else if(i===">"){if(r--,r===0)return n}n++}return-1}function jt(e,t=","){let r=[],n=0,i="",s=0;while(s<e.length){let o=e[s];if(o==='"'||o==="'"){let a=Ge(e,s);i+=e.slice(s,a),s=a;continue}if(o==="`"){let a=Xe(e,s);i+=e.slice(s,a),s=a;continue}if(o==="/"&&(e[s+1]==="/"||e[s+1]==="*")){s=ft(e,s);continue}if(o==="{"||o==="["||o==="("||o==="<")n++;else if(o==="}"||o==="]"||o===")"||o===">")n--;if(o===t&&n===0){r.push(i),i="",s++;continue}i+=o,s++}if(i.trim()!=="")r.push(i);return r}function dr(e){let t=e.trim();if(!t.startsWith("{"))return[];let r=Me(t,0,"{","}");if(r===-1)return[];let n=t.slice(1,r),i=[];for(let s of jt(n)){let o=-1,a=0;for(let u=0;u<s.length;u++){let l=s[u];if(l==='"'||l==="'"){u=Ge(s,u)-1;continue}if(l==="`"){u=Xe(s,u)-1;continue}if(l==="{"||l==="["||l==="("||l==="<")a++;else if(l==="}"||l==="]"||l===")"||l===">")a--;else if(l===":"&&a===0){o=u;break}}if(o!==-1){i.push({key:ur(s.slice(0,o).trim()),value:s.slice(o+1).trim(),isMethod:!1});continue}let f=/^([A-Za-z_$][\w$]*|['"][^'"]+['"])\s*\(/.exec(s.trim());if(f){i.push({key:ur(f[1]),value:s.trim(),isMethod:!0});continue}let c=s.trim();if(c)i.push({key:ur(c),value:"",isMethod:!1})}return i}function ur(e){if(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))return e.slice(1,-1);return e}function hr(e){return/^[A-Za-z_$][\w$]*$/.test(e)?e:JSON.stringify(e)}function mr(e,t){let r=new RegExp(`\\b${t}\\b`,"g"),n;while((n=r.exec(e))!==null){let i=n.index+n[0].length;while(i<e.length&&/\s/.test(e[i]))i++;let s=null;if(e[i]==="<"){let f=ln(e,i);if(f===-1)return null;s=e.slice(i+1,f).trim(),i=f+1;while(i<e.length&&/\s/.test(e[i]))i++}if(e[i]!=="(")continue;let o=Me(e,i,"(",")");if(o===-1)return null;let a=jt(e.slice(i+1,o));return{generic:s,arg:a.length>0?a[0].trim():null}}return null}function oc(e,t){let r=lo(e,t);if(!r)return null;return r.kind==="interface"?e.slice(r.bodyStart,r.end):e.slice(r.bodyStart,r.end).trim()}function lo(e,t){let r=new RegExp(`\\binterface\\s+${t}\\b[^{]*\\{`,"m").exec(e);if(r){let i=r.index+r[0].length-1,s=Me(e,i,"{","}");if(s!==-1)return{kind:"interface",start:r.index,end:s+1,bodyStart:i}}let n=new RegExp(`\\btype\\s+${t}\\b[^=]*=`,"m").exec(e);if(n){let i=n.index+n[0].length,s=0,o=i;while(i<e.length){let a=e[i];if(a==='"'||a==="'"){i=Ge(e,i);continue}if(a==="`"){i=Xe(e,i);continue}if(a==="{"||a==="["||a==="("||a==="<")s++;else if(a==="}"||a==="]"||a===")"||a===">")s--;else if((a===";"||a===`
|
|
63
|
+
`)&&s===0)break;i++}return{kind:"type",start:n.index,end:i,bodyStart:o}}return null}function ac(e){let t=e.search(/\bas\s+PropType\s*</);if(t===-1)return null;let r=e.indexOf("<",t),n=ln(e,r);if(n===-1)return null;if(e.slice(n+1).trim()!=="")return null;return e.slice(r+1,n).trim()}function sn(e){let t=e.trim(),r=ac(t);if(r!==null)return{type:r,optional:!0};if(t==="null")return{type:"unknown",optional:!0};if(t.startsWith("[")){let n=Me(t,0,"[","]");if(n!==-1){let i=jt(t.slice(1,n)).map((s)=>sn(s).type).filter((s)=>s!=="unknown");return{type:i.length>0?[...new Set(i)].join(" | "):"unknown",optional:!0}}}if(t.startsWith("{")){let n=dr(t),i=n.find((f)=>f.key==="type"),s=n.find((f)=>f.key==="required"),o=i?sn(i.value).type:"unknown",a=!(s&&s.value.trim()==="true");return{type:o,optional:a}}if(oo[t])return{type:oo[t],optional:!0};if(/^[A-Za-z_$][\w$.]*$/.test(t))return{type:t,optional:!0};return{type:"unknown",optional:!0}}function Hr(e){let t=e.trim();if(t.startsWith("{")){let r=dr(t);if(r.length===0)return"{}";return`{ ${r.map((n)=>{if(n.isMethod||n.value==="")return`${hr(n.key)}?: unknown`;let i=sn(n.value);return`${hr(n.key)}${i.optional?"?":""}: ${i.type}`}).join(", ")} }`}if(t.startsWith("[")){let r=Me(t,0,"[","]");if(r===-1)return null;let n=jt(t.slice(1,r)).map((i)=>ur(i.trim())).filter((i)=>i!=="");if(n.length===0)return"{}";return`{ ${n.map((i)=>`${hr(i)}?: unknown`).join(", ")} }`}return null}function lc(e){let t=e.trim();if(!t.startsWith("["))return null;let r=Me(t,0,"[","]");if(r===-1)return null;let n=jt(t.slice(1,r)).map((i)=>i.trim());if(n.length===0)return"{}";if(!n.every((i)=>i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"')))return"string[]";return`[${n.map((i)=>JSON.stringify(ur(i))).join(", ")}]`}function fc(e){let t=e.trim();if(!t.startsWith("{"))return null;let r=dr(t);if(r.length===0)return"{}";return`{ ${r.map((n)=>`${JSON.stringify(n.key)}: (...args: any[]) => void`).join(", ")} }`}function fo(e){return lc(e)??fc(e)}function cc(e){let t=[],r=0,n="",i=0;while(i<e.length){let s=e[i];if(s==='"'||s==="'"){let o=Ge(e,i);n+=e.slice(i,o),i=o;continue}if(s==="`"){let o=Xe(e,i);n+=e.slice(i,o),i=o;continue}if(s==="/"&&(e[i+1]==="/"||e[i+1]==="*")){let o=ft(e,i);n+=e.slice(i,o),i=o;continue}if(s==="="&&e[i+1]===">"){n+="=>",i+=2;continue}if(s==="{"||s==="["||s==="("||s==="<")r++;else if(s==="}"||s==="]"||s===")"||s===">")r--;if((s===";"||s===","||s===`
|
|
64
|
+
`)&&r===0){if(n.trim()!=="")t.push(n.trim());n="",i++;continue}n+=s,i++}if(n.trim()!=="")t.push(n.trim());return t}function uc(e){let t=e.trim();if(!t.startsWith("{"))return null;let r=Me(t,0,"{","}");if(r===-1||t.slice(r+1).trim()!=="")return null;let n=cc(t.slice(1,r));if(n.length===0)return"{}";let i=[];for(let s of n){let o=/^\(\s*\w+\s*:\s*/.exec(s);if(!o)return null;let a=o[0].length,f=s[a];if(f!=="'"&&f!=='"'&&f!=="`")return null;let c=Ge(s,a),u=s.slice(a+1,c-1),l=Me(s,s.indexOf("(",0),"(",")");if(l===-1)return null;let p=s.slice(a,l),h=jt(p).slice(1),w=s.slice(l+1).trim();if(w.startsWith(":"))w=w.slice(1).trim();if(w==="")w="void";i.push(`${JSON.stringify(u)}: (${h.map((A)=>A.trim()).join(", ")}) => ${w}`)}return`{ ${i.join(", ")} }`}function fn(e){let t=e;for(let r of["defineProps","defineEmits","defineExpose","defineSlots","defineOptions"])t=hc(t,r);return t}function hc(e,t){let r=new RegExp(`\\b${t}\\b`,"g"),n=[],i=e,s;while((s=r.exec(e))!==null){let o=e.lastIndexOf(`
|
|
65
|
+
`,s.index)+1,a=e.slice(o,s.index),f=/^\s*(?:(?:const|let|var)\s+[A-Za-z_$][\w$]*\s*(?::[^=]+)?=\s*)?(withDefaults\s*\(\s*)?$/.exec(a);if(!f)continue;let c=s.index+s[0].length;while(c<e.length&&/\s/.test(e[c]))c++;if(e[c]==="<"){let p=ln(e,c);if(p===-1)continue;c=p+1;while(c<e.length&&/\s/.test(e[c]))c++}if(e[c]!=="(")continue;let u=Me(e,c,"(",")");if(u===-1)continue;if(f[1]){let p=o+a.length-f[1].length,h=e.indexOf("(",p);if(h!==-1){let w=Me(e,h,"(",")");if(w!==-1)u=w}}let l=u+1;while(l<e.length&&e[l]!==`
|
|
54
66
|
`&&/\s|;/.test(e[l]))l++;if(e[l]===`
|
|
55
|
-
`)l++;
|
|
56
|
-
`,i.index)+1;if(/\bexport\b/.test(e.slice(
|
|
57
|
-
`)
|
|
58
|
-
`)
|
|
59
|
-
`&&
|
|
60
|
-
`)c++;t.push({name:
|
|
61
|
-
|
|
67
|
+
`)l++;n.push([o,l])}for(let o=n.length-1;o>=0;o--)i=i.slice(0,n[o][0])+i.slice(n[o][1]);return i}function cn(e){let t=dc(e);if(t!==-1){let r=/^export\s+default\b/.exec(e.slice(t))?.[0];if(!r)return{options:null,script:e,passthrough:!1};let n=t+r.length;while(n<e.length&&/\s/.test(e[n]))n++;let i=-1,s=-1,o=-1;if(e[n]==="{")i=n,s=Me(e,n,"{","}"),o=s;else if(e.startsWith("defineComponent",n)){let c=e.indexOf("(",n);if(c!==-1){let u=c+1;while(u<e.length&&/\s/.test(e[u]))u++;if(e[u]==="{")i=u,s=Me(e,u,"{","}"),o=Me(e,c,"(",")")}}if(i===-1||s===-1||o===-1)return{options:null,script:e,passthrough:!0};let a=o+1;if(e[a]===";")a++;let f=(e.slice(0,t)+e.slice(a)).trim();return{options:e.slice(i,s+1),script:f,passthrough:!1}}return{options:null,script:e,passthrough:!1}}function dc(e){let t=0,r=0;while(r<e.length){let n=e[r];if(n==='"'||n==="'"){r=Ge(e,r);continue}if(n==="`"){r=Xe(e,r);continue}if(n==="/"&&(e[r+1]==="/"||e[r+1]==="*")){r=ft(e,r);continue}if(n==="{"||n==="["||n==="(")t++;else if(n==="}"||n==="]"||n===")")t=Math.max(0,t-1);else if(t===0&&e.startsWith("export",r)){let i=r===0?"":e[r-1],s=e[r+6]??"";if(!/[\w$]/.test(i)&&!/[\w$]/.test(s)){if(/^export\s+default\b/.exec(e.slice(r)))return r}}r++}return-1}function _r(e,t){let r=dr(e).find((n)=>n.key===t);return r&&r.value!==""?r.value:null}function Jr(e,t){let r=gc(e),n=e;for(let i=r.length-1;i>=0;i--){let s=r[i],o=n.slice(0,s.start)+n.slice(s.end);if(mc(o,s.name))continue;if(new RegExp(`\\btypeof\\s+${s.name}\\b`).test(t))continue;n=o}return n}function mc(e,t){let r=0;while(r<e.length){let n=e[r];if(n==='"'||n==="'"){r=Ge(e,r);continue}if(n==="`"){r=Xe(e,r);continue}if(n==="/"&&(e[r+1]==="/"||e[r+1]==="*")){r=ft(e,r);continue}if(/[A-Za-z_$]/.test(n)){let i=r+1;while(i<e.length&&/[\w$]/.test(e[i]))i++;if(e.slice(r,i)===t)return!0;r=i;continue}r++}return!1}function gc(e){let t=[],r=pc(e),n=/^[ \t]*(const|let|var|(?:async[ \t]+)?function)[ \t]+([A-Za-z_$][\w$]*)[ \t]*(?::[^=\n]+)?=?/gm,i;while((i=n.exec(e))!==null){let s=e.lastIndexOf(`
|
|
68
|
+
`,i.index)+1;if(!r.has(s))continue;if(/\bexport\b/.test(e.slice(s,i.index)))continue;let o=i[1],a=i[2],f=i.index+i[0].length,c=-1;if(o.endsWith("function")){let u=e.indexOf("(",f);if(u===-1)continue;let l=Me(e,u,"(",")");if(l===-1)continue;f=l+1;while(f<e.length&&/\s/.test(e[f]))f++;if(e[f]===":")while(f<e.length&&e[f]!=="{"&&e[f]!==`
|
|
69
|
+
`)f++;while(f<e.length&&/\s/.test(e[f])&&e[f]!==`
|
|
70
|
+
`)f++;if(e[f]!=="{")continue;let p=Me(e,f,"{","}");if(p===-1)continue;c=p+1}else{let u=0;while(f<e.length){let l=e[f];if(l==='"'||l==="'"){f=Ge(e,f);continue}if(l==="`"){f=Xe(e,f);continue}if(l==="/"&&(e[f+1]==="/"||e[f+1]==="*")){f=ft(e,f);continue}if(l==="{"||l==="["||l==="(")u++;else if(l==="}"||l==="]"||l===")")u--;else if(l===";"&&u===0){c=f+1;break}else if(l===`
|
|
71
|
+
`&&u===0){c=f;break}f++}if(c===-1)c=e.length}if(e[c]===`
|
|
72
|
+
`)c++;t.push({name:a,start:i.index,end:c})}return t}function pc(e){let t=new Set([0]),r=0,n=0;while(n<e.length){let i=e[n];if(i==='"'||i==="'"){n=Ge(e,n);continue}if(i==="`"){n=Xe(e,n);continue}if(i==="/"&&(e[n+1]==="/"||e[n+1]==="*")){n=ft(e,n);continue}if(i==="{"||i==="["||i==="(")r++;else if(i==="}"||i==="]"||i===")")r=Math.max(0,r-1);if(i===`
|
|
73
|
+
`&&r===0)t.add(n+1);n++}return t}function Kr(e,t,r){let n=e.indexOf(r);if(n===-1)return e;let i=e.lastIndexOf(`
|
|
74
|
+
`,n)+1;if(/\bexport\b/.test(e.slice(i,n)))return e;let s=e.slice(0,n)+e.slice(n+r.length);if(new RegExp(`\\b${t}\\b`).test(s))return e;return s}function un(e){let t="",r=0,n=()=>{for(let s=t.length-1;s>=0;s--)if(!/\s/.test(t[s]))return t[s];return""},i=(s)=>{for(let o=s;o<e.length;o++)if(!/\s/.test(e[o]))return e[o];return""};while(r<e.length){let s=e[r];if(s==='"'||s==="'"){let o=Ge(e,r);t+=e.slice(r,o),r=o;continue}if(s==="`"){let o=Xe(e,r);t+=e.slice(r,o),r=o;continue}if(s==="/"&&e[r+1]==="*"){let o=ft(e,r);t+=e.slice(r,o).replace(/\s*\n\s*/g," "),r=o;continue}if(s==="/"&&e[r+1]==="/"){let o=r+2;while(o<e.length&&e[o]!==`
|
|
62
75
|
`)o++;let a=e.slice(r+2,o).trim();if(a!==""&&!a.includes("*/"))t+=`/* ${a} */`;r=o;continue}if(s===`
|
|
63
|
-
`){let o=
|
|
64
|
-
${t.scriptSetup.content}`:t.script.content;if(r=$.script,$.options){let
|
|
65
|
-
`)}var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
`)
|
|
69
|
-
`);if(r.
|
|
70
|
-
`)}if(t
|
|
71
|
-
`);return
|
|
72
|
-
`).map((t)=>t.replace(/[\t ]+$/,"")).join(`
|
|
73
|
-
`)}function nf(e,t){let r=new RegExp(`\\n{${t+2},}`,"g");return e.replace(r,`
|
|
74
|
-
`.repeat(t+1))}function sf(e){return`${e.replace(/\s+$/,"")}
|
|
75
|
-
`}function of(e,t){let{style:r="spaces",size:i=2}=t,n=r==="tabs"?"\t":" ".repeat(i),s=e.split(`
|
|
76
|
-
`),o=[];for(let a of s){let c=a.match(/^([\t ]*)(.*)$/);if(!c){o.push(a);continue}let[,f,u]=c;if(!u){o.push("");continue}let l=f.replace(/\t/g," "),p=Math.floor(l.length/2);o.push(n.repeat(p)+u)}return o.join(`
|
|
77
|
-
`)}function af(e,t){let{groups:r=ef,separateGroups:i=!0,alphabetize:n=!0}=t,s=e.split(`
|
|
78
|
-
`),o=[],a=[],c=-1;for(let w=0;w<s.length;w++){let A=s[w],$=oo(A);if($)o.push({line:A,source:$.source,group:$.group,isType:$.isType}),c=w;else if(o.length>0&&A.trim()==="")continue;else if(o.length>0||A.trim()!==""){if(o.length===0||w>c+1)a.push(A)}}if(o.length===0)return e;let f=new Map;for(let w of r)f.set(w,[]);for(let w of o)(f.get(w.group)||f.get("external")||[]).push(w);if(n)for(let[,w]of f)w.sort((A,$)=>{if(A.isType!==$.isType)return A.isType?1:-1;return A.source.localeCompare($.source)});let u=[],l=null;for(let w of r){let A=f.get(w)||[];if(A.length===0)continue;if(i&&l!==null)u.push("");for(let $ of A)u.push($.line);l=w}let p=s.slice(0,s.findIndex((w)=>oo(w)!==null)),h=a;while(h.length>0&&h[0].trim()==="")h.shift();return[...p,...u,"",...h].join(`
|
|
79
|
-
`)}function oo(e){let t=e.trim(),r=t.match(/^import\s+(type\s+)?.*from\s+['"]([^'"]+)['"]/);if(!r){let s=t.match(/^import\s+['"]([^'"]+)['"]/);if(s)return{source:s[1],group:ao(s[1]),isType:!1};return null}let i=!!r[1],n=r[2];return{source:n,group:i?"type":ao(n),isType:i}}function ao(e){if(e.startsWith("node:"))return"builtin";let t=["assert","buffer","child_process","cluster","crypto","dgram","dns","events","fs","http","https","net","os","path","querystring","readline","stream","url","util","zlib"];if(t.includes(e)||t.includes(e.split("/")[0]))return"builtin";if(e==="."||e==="./index"||e==="./index.js"||e==="./index.ts")return"index";if(e.startsWith("./"))return"sibling";if(e.startsWith("../"))return"parent";if(e.startsWith("@/")||e.startsWith("~/")||e.startsWith("#"))return"internal";if(e.startsWith("@"))return"scoped";return"external"}function lf(e,t){let{kinds:r=Qc,alphabetize:i=!1,groupExports:n=!0}=t,s=e.split(`
|
|
80
|
-
`),o=[],a=[],c=[],f=null,u=0,l=!0,p=!1,h=[];for(let $=0;$<s.length;$++){let x=s[$],S=x.trim(),k=u,R=S.startsWith("///"),b=k===0&&!R&&(S.startsWith("//")||S.startsWith("/*"));if(p||b){if(h.push(x),!p&&S.startsWith("/*")&&!S.includes("*/"))p=!0;else if(p&&S.includes("*/"))p=!1;continue}if(k===0&&h.length>0&&S===""){h.push(x);continue}u+=(x.match(/\{/g)||[]).length,u-=(x.match(/\}/g)||[]).length;let L=cf(S);if(l&&L&&L.kind!=="import"&&!S.startsWith("//")&&!S.startsWith("/*"))l=!1;if(l){if(h.length>0){if(L?.kind==="import"||!L)a.push(...h),h.length=0}a.push(x);continue}if(L&&u<=1){if(f)o.push(f);f={lines:h.length>0?[...h,x]:[x],kind:L.kind,name:L.name,isExport:L.isExport},h.length=0}else if(f)f.lines.push(x);else{if(S==="")continue;c.push(x)}}if(f)o.push(f);if(h.length>0)c.push(...h);o.sort(($,x)=>{if(n&&$.isExport!==x.isExport)return $.isExport?-1:1;let S=r.indexOf($.kind),k=r.indexOf(x.kind),R=S>=0?S:r.length,b=k>=0?k:r.length;if(R!==b)return R-b;if(i)return $.name.localeCompare(x.name);return 0});let w=[...a],A=null;for(let $ of o){if(A!==null&&$.kind!==A)w.push("");w.push(...$.lines),A=$.kind}if(c.length>0)w.push(""),w.push(...c);return w.join(`
|
|
81
|
-
`)}function cf(e){let t=e.startsWith("export "),r=t?e.slice(7):e;if(e.startsWith("import "))return{kind:"import",name:e.match(/from\s+['"]([^'"]+)['"]/)?.[1]||"",isExport:!1};if(r.startsWith("type ")||r.startsWith("declare type "))return{kind:"type",name:r.match(/type\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("interface ")||r.startsWith("declare interface "))return{kind:"interface",name:r.match(/interface\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("class ")||r.startsWith("abstract class ")||r.startsWith("declare class ")||r.startsWith("declare abstract class "))return{kind:"class",name:r.match(/class\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("enum ")||r.startsWith("const enum ")||r.startsWith("declare enum ")||r.startsWith("declare const enum "))return{kind:"enum",name:r.match(/enum\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("function ")||r.startsWith("async function ")||r.startsWith("declare function ")||r.startsWith("declare async function "))return{kind:"function",name:r.match(/function\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("const ")||r.startsWith("let ")||r.startsWith("var ")||r.startsWith("declare const ")||r.startsWith("declare let ")||r.startsWith("declare var "))return{kind:"variable",name:r.match(/(?:const|let|var)\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("namespace ")||r.startsWith("declare namespace "))return{kind:"namespace",name:r.match(/namespace\s+(\w+)/)?.[1]||"",isExport:t};if(r.startsWith("module ")||r.startsWith("declare module "))return{kind:"module",name:r.match(/module\s+['"]?(\w+)['"]?/)?.[1]||"",isExport:t};if(e.startsWith("export {")||e.startsWith("export *")||e.startsWith("export type {"))return{kind:"export",name:"",isExport:!0};return null}var Qc,ef;var co=ue(()=>{Qc=["import","type","interface","enum","class","function","variable","export","module","namespace","unknown"],ef=["builtin","external","scoped","internal","parent","sibling","index","type"]});async function ff(){if(Br!==null)return Br;try{return xt=await import("prettier"),Br=!0,!0}catch{return Br=!1,!1}}async function uf(e,t){if(!xt)return null;try{if(t&&xt.resolveConfig){let r=await xt.resolveConfig(t);if(r)return r}if(e&&xt.resolveConfig){let r=await xt.resolveConfig(e);if(r)return r}return null}catch{return null}}async function hf(e,t){if(!xt)throw Error("Prettier is not available");let r={...t,parser:t.parser||"typescript"};return xt.format(e,r)}function df(e,t={}){let{indentSize:r=2,useTabs:i=!1,maxLineWidth:n=100,trailingNewline:s=!0,normalizeWhitespace:o=!0,sortImports:a=!0,groupImports:c=!0}=t,f=e,u=i?"\t":" ".repeat(r);if(f.indexOf(`\r
|
|
82
|
-
`)!==-1)f=f.replace(/\r\n/g,`
|
|
83
|
-
`);if(o){if(/[ \t]\n/.test(f)||/[ \t]$/.test(f))f=f.replace(/[ \t]+$/gm,"");if(f.indexOf(`
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
`)!==-1)f=f.replace(/\n{3,}/g,`
|
|
76
|
+
`){let o=n(),a=i(r+1);if(o===""||a===""){r++;continue}let f=yc(t);if(!f&&("{;,(<:=[".includes(o)||"}),]>;|&".includes(a))){if(!t.endsWith(" ")&&!t.endsWith(";"))t+=" "}else if(f){if(!t.endsWith(" "))t+=" "}else{if(t.endsWith(" "))t=t.slice(0,-1);t+="; "}r++;while(r<e.length&&(e[r]===" "||e[r]==="\t"))r++;continue}t+=s,r++}return t}function yc(e){let t=e.length-1;while(t>=0&&/\s/.test(e[t]))t--;if(t<1||e[t]!=="/"||e[t-1]!=="*")return!1;let r=e.lastIndexOf("/*",t);if(r===-1)return!1;for(let n=r-1;n>=0;n--){let i=e[n];if(/\s/.test(i))continue;return"{;,(<:".includes(i)}return!0}function Yr(e,t){let r=[e,t].filter((n)=>n!==null);for(let n of r){let i=mr(n,"defineProps");if(!i)continue;if(i.generic){let s=i.generic;if(s.startsWith("{"))return{type:s};if(/^[A-Za-z_$][\w$]*$/.test(s)){for(let o of r){let a=lo(o,s);if(!a)continue;let f=oc(o,s);if(f===null)continue;return{type:f,inlinedLocal:{name:s,declText:o.slice(a.start,a.end)}}}return{type:s}}return{type:s}}if(i.arg){let s=Hr(i.arg);if(s!==null)return{type:s}}}return null}function hn(e,t){let r=[e,t].filter((n)=>n!==null);for(let n of r){let i=mr(n,"defineEmits");if(!i)continue;if(i.generic)return uc(i.generic)??i.generic;if(i.arg){let s=fo(i.arg);if(s!==null)return s}}return null}function dn(e,t){let r=[e,t].filter((n)=>n!==null);for(let n of r){let i=mr(n,"defineExpose");if(!i||!i.arg||!i.arg.startsWith("{"))continue;let s=dr(i.arg);if(s.length===0)return null;return`{ ${s.map((o)=>{if(o.value===""&&/^[A-Za-z_$][\w$]*$/.test(o.key))return`${hr(o.key)}: typeof ${o.key}`;let a=o.isMethod||/=>|^\s*function\b/.test(o.value);return`${hr(o.key)}: ${a?"(...args: any[]) => any":"unknown"}`}).join(", ")} }`}return null}function co(e){let t=sc(e),r="",n=null,i=null;if(t.script){let $=cn(t.script.content);if($.passthrough)return t.scriptSetup?`${t.script.content}
|
|
77
|
+
${t.scriptSetup.content}`:t.script.content;if(r=$.script,$.options){let O=_r($.options,"props");if(O)n=Hr(O);let T=_r($.options,"emits");if(T)i=fo(T)}}let s=t.scriptSetup?.content??null,o=s!==null?fn(s):null,a=Yr(s,s!==null?null:r),f=a?.type??n??"{}",c=hn(s,null)??i,u=dn(s,null),l=a?.inlinedLocal;if(l){if(r=Kr(r,l.name,l.declText),o!==null)o=Kr(o,l.name,l.declText)}let p=[f,u??"{}"];if(c)p.push("{}","{}","{}","{}","{}",c);let h=un(`DefineComponent<${p.join(", ")}>`),w=[],A=Jr(r,h);if(A.trim()!=="")w.push(A);if(o&&o.trim()!==""){let $=Jr(o,h);if($.trim()!=="")w.push($)}return w.push("import type { DefineComponent } from 'vue'"),w.push(`type __DtsxComponentType = ${h}`),w.push("const __dtsx_component__: __DtsxComponentType = null as unknown as __DtsxComponentType"),w.push("export default __dtsx_component__"),w.join(`
|
|
78
|
+
`)}var oo;var mn=de(()=>{oo={String:"string",Number:"number",Boolean:"boolean",Array:"unknown[]",Object:"Record<string, unknown>",Function:"(...args: any[]) => any",Symbol:"symbol",Promise:"Promise<unknown>",Date:"Date",BigInt:"bigint"}});function ho(e){return e.endsWith(".stx")}function $c(e){let t=[],r=/<script\b([^>]*)>([\s\S]*?)<\/script\s*>/gi,n;while((n=r.exec(e))!==null){let i=n[1]??"",s=/\blang\s*=\s*["']([^"']+)["']/i.exec(i)?.[1]?.toLowerCase()??(/\b(?:type\s*=\s*["'](?:text\/)?typescript["']|typescript)\b/i.test(i)?"ts":"js"),o=/\bserver\b/i.test(i)?"server":/\bclient\b/i.test(i)?"client":"universal";t.push({content:n[2]??"",kind:"script",attrs:i,context:o,lang:s,start:n.index})}return t}function wc(e){let t=[],r=/^[ \t]*@ts[ \t]*(?:\r?\n|$)/gm,n;while((n=r.exec(e))!==null){let i=r.lastIndex,s=/^[ \t]*@endts[ \t]*(?:\r?\n|$)/gm;s.lastIndex=i;let o=s.exec(e),a=o?.index??e.length;if(t.push({content:e.slice(i,a),kind:"ts",attrs:"",context:"universal",lang:"ts",start:n.index}),!o)break;r.lastIndex=s.lastIndex}return t}function Cc(e){return[...$c(e),...wc(e)].sort((t,r)=>t.start-r.start)}function bc(e){if(e.kind==="ts"||e.context!=="universal"||e.lang==="ts")return!0;return/\b(?:defineProps|defineEmits|defineExpose|defineSlots)\b|\bexport\s|\b(?:interface|type)\s+[A-Za-z_$]/.test(e.content)}function Ac(e){let t=/(?:\$?props)\s+as\s+/g,r;while((r=t.exec(e))!==null){let n=t.lastIndex;while(n<e.length&&/\s/.test(e[n]))n++;if(e[n]==="{"){let o=Me(e,n,"{","}");if(o!==-1)return e.slice(n,o+1).trim();continue}let i=/^[A-Za-z_$][\w$]*/.exec(e.slice(n))?.[0];if(!i)continue;let s=n+i.length;while(s<e.length&&/\s/.test(e[s]))s++;if(e[s]==="<"){let o=Me(e,s,"<",">");if(o!==-1)s=o+1}return e.slice(n,s).trim()}return null}function vc(e){return/\b(?:const|let|var)\s+\$?props\s*:\s*([^=;\n]+)/.exec(e)?.[1]?.trim()??null}function xc(e){let t=/^\s*(?:\|\||\?\?)\s*([^;\n]+)/.exec(e)?.[1]?.trim();if(/^['"`]/.test(t??""))return"string";if(/^(?:true|false)\b/.test(t??""))return"boolean";if(/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)\b/.test(t??""))return"number";if(/^\[/.test(t??""))return"unknown[]";if(/^\{/.test(t??""))return"Record<string, unknown>";if(/^\s*(?:===?|!==?)\s*(?:true|false)\b/.test(e))return"boolean";return"unknown"}function Ec(e,t){if(!e||e==="unknown")return t;if(t==="unknown"||e===t)return e;return[...new Set([...e.split(" | "),...t.split(" | ")])].join(" | ")}function Oc(e){let t=an(e),r=new Map,n=/\$props(?:\.([A-Za-z_$][\w$]*)|\[\s*(['"])([^'"\n]+)\2\s*\])/g,i;while((i=n.exec(e))!==null){if(t.slice(i.index,i.index+6)!=="$props")continue;let s=i[1]??i[3],o=xc(e.slice(n.lastIndex));r.set(s,Ec(r.get(s),o))}if(r.size===0)return null;return{type:`{ ${[...r].map(([s,o])=>{return`${/^[A-Za-z_$][\w$]*$/.test(s)?s:JSON.stringify(s)}?: ${o}`}).join(", ")} }`}}function kc(e){let t=Yr(e,null);if(t)return t;let r=Ac(e)??vc(e);if(!r)return Oc(e);if(/^[A-Za-z_$][\w$]*$/.test(r)){let n=r.replace(/[$]/g,"\\$&");if(new RegExp(`\\bexport\\s+(?:declare\\s+)?(?:interface|type)\\s+${n}\\b`).test(e))return{type:r}}return Yr(`${e}
|
|
79
|
+
defineProps<${r}>()`,null)}function Sc(e){return fn(e)}function uo(e){let t=an(e).trimStart();if(t==="")return!0;return/^(?:import\b|export\b|declare\b|interface\b|type\b|(?:export\s+)?namespace\b|(?:export\s+)?module\b|(?:abstract\s+)?class\b|const\b|let\b|var\b|(?:async\s+)?function\b)/.test(t)}function Tc(e){let t=[],r=0,n=0,i=0;while(i<e.length){let o=e[i],a=on(e,i);if(a>i){i=a;continue}if(o==="{"||o==="["||o==="(")n++;else if(o==="}"||o==="]"||o===")")n=Math.max(0,n-1);if((o===";"||o===`
|
|
80
|
+
`)&&n===0){let f=i+1;if(!uo(e.slice(r,f)))t.push([r,f]);r=f}i++}if(r<e.length&&!uo(e.slice(r)))t.push([r,e.length]);let s=e;for(let o=t.length-1;o>=0;o--)s=s.slice(0,t[o][0])+s.slice(t[o][1]);return s}function mo(e){let t=Cc(e).filter(bc).map((A)=>A.content).join(`
|
|
81
|
+
`),r=null,n=cn(t);if(n.passthrough)return t;if(t=n.script,n.options){let A=_r(n.options,"props");if(A)r=Hr(A)}let i=t,s=Sc(t),o=kc(i),a=o?.type??r??"{}",f=hn(i,null),c=dn(i,null),u=mr(i,"defineSlots")?.generic??null,l=o?.inlinedLocal;if(l)s=Kr(s,l.name,l.declText);let p=`DefineComponent<${a}>`,h=[];if(f)h.push(`readonly __stxEmits?: ${f}`);if(u)h.push(`readonly __stxSlots?: ${u}`);if(c)h.push(`readonly __stxExposed?: ${c}`);if(h.length>0)p+=` & { ${h.join(", ")} }`;p=un(p),s=Tc(Jr(s,p));let w=["import type { DefineComponent } from '@stacksjs/stx'",`type __DtsxStxComponentType = ${p}`,"const __dtsx_component__: __DtsxStxComponentType = null as unknown as __DtsxStxComponentType","export default __dtsx_component__"];if(s.trim()!=="")w.push(s);return w.join(`
|
|
82
|
+
`)}var go=de(()=>{mn()});function gr(e){if(Rc)return Bun.hash(e);let t=0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);t=(t<<5)-t+n,t=t&t}return t}var Rc;var gn=de(()=>{Rc=typeof globalThis.Bun?.hash==="function"});function yo(e,t,r=!0,n=!1){if(ao(t))e=co(e);else if(ho(t))e=mo(e);let i=gr(e),s=`${t}:${r?1:0}:${n?1:0}`,o=_t.get(s);if(o&&o.contentHash===i)return o.lastAccess=++po,o.declarations;let a=n?ro(e,t,r):io(e,t,r);if(_t.set(s,{declarations:a,contentHash:i,lastAccess:++po}),_t.size>Wc){let f=Math.max(1,Math.ceil(_t.size*0.1)),c=[];for(let[u,l]of _t)c.push([u,l.lastAccess]);c.sort((u,l)=>u[1]-l[1]);for(let u=0;u<f&&u<c.length;u++)_t.delete(c[u][0])}return a}var Wc=100,po=0,_t;var $o=de(()=>{so();go();gn();mn();_t=new Map});function wo(e,t){let r=Number.isFinite(t)?Math.max(1,Math.floor(t)):1;if(e===void 0||!Number.isFinite(e))return r;return Math.max(1,Math.floor(e))}var Co=()=>{};function Gr(e,t,r=!0,n=!1){return yo(e,t,r,n)}var pn=de(()=>{$o()});import{dirname as Xm,relative as Nc,resolve as zm}from"path";async function bo(e,t,r){let n=new Map,i=[],s=new Set,o=0,a=0,f=0,c=[];for(let T of e){let S=t.get(T);if(!S)continue;c.push({file:T,decls:Gr(S,T,r.keepComments)})}for(let{file:T,decls:S}of c){o+=S.length;for(let W of S)if(W.kind==="import"){a++;let b=W.source||"";if(b.startsWith("."))continue;if(!n.has(b))n.set(b,{source:b,specifiers:new Map,isTypeOnly:W.isTypeOnly||!1,isSideEffect:W.isSideEffect||!1});let L=n.get(b);if(W.specifiers)for(let re of W.specifiers){let F=re.alias||re.name;if(!L.specifiers.has(F))L.specifiers.set(F,{name:re.name,alias:re.alias,isType:re.isType||!1})}if(!W.isTypeOnly)L.isTypeOnly=!1}else if(W.isExported||W.kind==="export"){if(f++,W.kind==="export"&&W.source&&(W.source.startsWith(".")||W.source.startsWith("/")))continue;if(W.name&&s.has(W.name))continue;if(W.name)s.add(W.name);i.push({declaration:W,file:T})}}let u=[];u.push("/**"),u.push(" * Bundled TypeScript declarations"),u.push(` * Generated from ${e.length} source files`),u.push(" */"),u.push("");let l=r.importOrder||["bun"],p=Array.from(n.values()),h=Array(p.length);for(let T=0;T<p.length;T++){let S=p[T].source,W=l.length;for(let b=0;b<l.length;b++)if(S.startsWith(l[b])){W=b;break}h[T]=W}let w=p.map((T,S)=>S);w.sort((T,S)=>{let W=h[T],b=h[S];if(W!==b)return W-b;return p[T].source.localeCompare(p[S].source)});let A=w.map((T)=>p[T]);for(let T of A)if(T.isSideEffect)u.push(`import '${T.source}';`);else if(T.specifiers.size>0){let S=Array.from(T.specifiers.values()).map((b)=>{let L=b.isType?"type ":"";return b.alias?`${L}${b.name} as ${b.alias}`:`${L}${b.name}`}),W=T.isTypeOnly?"type ":"";u.push(`import ${W}{ ${S.join(", ")} } from '${T.source}';`)}if(A.length>0)u.push("");let $=new Map;for(let{declaration:T,file:S}of i){if(!$.has(S))$.set(S,[]);$.get(S).push(T)}for(let[T,S]of $){let W=Nc(r.cwd,T);u.push(`// From: ${W}`);for(let b of S){if(r.keepComments&&b.leadingComments)for(let L of b.leadingComments)u.push(L);u.push(Ao(b))}u.push("")}let O=u.join(`
|
|
83
|
+
`);return{content:O,files:e,declarationCount:o,importCount:a,exportCount:f,size:Buffer.byteLength(O,"utf8"),warnings:[]}}function Ao(e){if(e.text){let r=e.text.trim();if(e.isExported&&!r.startsWith("export"))r=`export ${r}`;if(!r.endsWith(";")&&!r.endsWith("}"))r+=";";return r}let t=[];if(e.isExported)t.push("export");if(e.isDefault)t.push("default");switch(e.kind){case"function":if(t.push("declare function"),t.push(e.name),e.generics)t.push(e.generics);if(t.push(`(${Fc(e.parameters)})`),e.returnType)t.push(`: ${e.returnType}`);break;case"variable":if(t.push("declare const"),t.push(e.name),e.typeAnnotation)t.push(`: ${e.typeAnnotation}`);break;case"interface":if(t.push("interface"),t.push(e.name),e.generics)t.push(e.generics);if(e.extends)t.push(`extends ${e.extends}`);if(t.push("{"),e.members)for(let r of e.members)t.push(` ${r.name}${r.typeAnnotation?`: ${r.typeAnnotation}`:""};`);t.push("}");break;case"type":if(t.push("type"),t.push(e.name),e.generics)t.push(e.generics);t.push("="),t.push(e.typeAnnotation||"unknown");break;case"class":if(t.push("declare class"),t.push(e.name),e.generics)t.push(e.generics);if(e.extends)t.push(`extends ${e.extends}`);if(e.implements&&e.implements.length>0)t.push(`implements ${e.implements.join(", ")}`);if(t.push("{"),e.members)for(let r of e.members)t.push(` ${Ao(r)}`);t.push("}");break;case"enum":if(t.push("declare enum"),t.push(e.name),t.push("{"),e.members){let r=e.members.map((n)=>n.value!==void 0?`${n.name} = ${n.value}`:n.name);t.push(` ${r.join(`,
|
|
84
|
+
`)}`)}t.push("}");break;default:return e.text||""}return t.join(" ")}function Fc(e){if(!e||e.length===0)return"";return e.map((t)=>{let r="";if(t.rest)r+="...";if(r+=t.name,t.optional)r+="?";if(t.type)r+=`: ${t.type}`;if(t.defaultValue)r+=` = ${t.defaultValue}`;return r}).join(", ")}var vo=de(()=>{pn()});import{existsSync as pr,mkdirSync as Pc,readFileSync as $n,renameSync as Dc,rmSync as xo,statSync as Eo,writeFileSync as Oo}from"fs";import{join as ko,relative as Vr,resolve as Mc}from"path";class wn{cacheDir;manifestPath;manifest=null;configHash;constructor(e){this.cacheDir=Mc(e.cwd,Zr),this.manifestPath=ko(this.cacheDir,Ic),this.configHash=this.hashConfig(e)}hashConfig(e){let t={keepComments:e.keepComments,importOrder:e.importOrder,outputStructure:e.outputStructure,isolatedDeclarations:e.isolatedDeclarations,declarationMap:e.declarationMap,indentStyle:e.indentStyle,indentSize:e.indentSize,prettier:e.prettier,typeMappings:e.typeMappings?{includeDefaults:e.typeMappings.includeDefaults,presets:e.typeMappings.presets,cacheKey:e.typeMappings.cacheKey,rules:e.typeMappings.rules.map((r)=>({pattern:typeof r.pattern==="string"?{kind:"string",value:r.pattern}:{kind:"regex",source:r.pattern.source,flags:r.pattern.flags},replacement:r.replacement,global:r.global,priority:r.priority,hasCondition:Boolean(r.condition)}))}:void 0,lineEnding:e.lineEnding,normalizeOutput:e.normalizeOutput,declarationOrder:e.declarationOrder,plugins:e.plugins?.map((r)=>({name:r.name,version:r.version,cacheKey:r.cacheKey}))};return String(gr(JSON.stringify(t)))}hashString(e){return String(gr(e))}load(){try{if(!pr(this.manifestPath))return!1;let e=$n(this.manifestPath,"utf-8"),t=JSON.parse(e);if(t.version!==yn)return!1;if(t.configHash!==this.configHash)return!1;if(!t.entries||typeof t.entries!=="object"||Array.isArray(t.entries))return!1;return this.manifest=t,!0}catch{return!1}}save(){if(!this.manifest)this.manifest={version:yn,configHash:this.configHash,entries:{},createdAt:Date.now(),updatedAt:Date.now()};if(this.manifest.updatedAt=Date.now(),!pr(this.cacheDir))Pc(this.cacheDir,{recursive:!0});let e=`${this.manifestPath}.${process.pid}.tmp`;try{Oo(e,JSON.stringify(this.manifest,null,2)),Dc(e,this.manifestPath)}finally{if(pr(e))xo(e,{force:!0})}}needsRegeneration(e,t){return this.getCachedIfValid(e,t)===null}getCached(e,t){return this.getCachedIfValid(e,t)}getCachedIfValid(e,t){if(!this.manifest)return null;let r=Vr(t,e),n=this.manifest.entries[r];if(!n)return null;if(typeof n.dtsContent!=="string"||typeof n.dtsHash!=="string"||n.configHash!==this.configHash||this.hashString(n.dtsContent)!==n.dtsHash)return null;try{let i=Eo(e),s=i.mtimeMs,o=i.ctimeMs;if(i.size!==n.sourceSize)return null;if(s!==n.sourceMtime||o!==n.sourceCtime){let a=$n(e,"utf-8");if(this.hashString(a)!==n.sourceHash)return null;n.sourceMtime=s,n.sourceCtime=o}return n.dtsContent}catch{return null}}update(e,t,r,n){if(!this.manifest)this.manifest={version:yn,configHash:this.configHash,entries:{},createdAt:Date.now(),updatedAt:Date.now()};let i=Vr(n,e),s,o,a;try{let f=Eo(e);s=f.mtimeMs,o=f.ctimeMs,a=f.size}catch{s=Date.now(),o=s,a=Buffer.byteLength(t)}this.manifest.entries[i]={sourcePath:i,sourceHash:this.hashString(t),sourceMtime:s,sourceCtime:o,sourceSize:a,dtsContent:r,dtsHash:this.hashString(r),generatedAt:Date.now(),configHash:this.configHash}}remove(e,t){if(!this.manifest)return;let r=Vr(t,e);delete this.manifest.entries[r]}clear(){this.manifest=null;try{if(pr(this.manifestPath))xo(this.cacheDir,{recursive:!0,force:!0})}catch{}}getStats(){if(!this.manifest)return{entries:0,size:0};let e=Object.keys(this.manifest.entries).length,t=0;for(let r of Object.values(this.manifest.entries))t+=r.dtsContent.length;return{entries:e,size:t}}prune(e,t){if(!this.manifest)return 0;let r=0,n=new Set(Array.from(e).map((i)=>Vr(t,i)));for(let i of Object.keys(this.manifest.entries))if(!n.has(i))delete this.manifest.entries[i],r++;return r}}function So(e){let t=ko(e,".gitignore");try{let r="";if(pr(t))r=$n(t,"utf-8");if(!r.split(/\r?\n/).some((n)=>n.trim()===Zr||n.trim()===`${Zr}/`)){let n=r.trimEnd(),i=`${n}${n?`
|
|
87
85
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
`;return f}function
|
|
91
|
-
`)
|
|
92
|
-
`)
|
|
93
|
-
`),i=[],n=[],s=!1,o=0;for(let c=0;c<r.length;c++){let f=r[c],u=f.match(/^(import\s+(?:type\s+)?.*from\s+['"])([^'"]+)(['"].*)$/);if(u){s=!0,o=c;let l=u[1];i.push({line:f,source:u[2],isType:l.startsWith("import type ")||l.startsWith("import type\t")})}else if(s&&f.trim()==="")continue;else{if(s)s=!1;n.push(f)}}if(i.length===0)return e;if(t.sort)i.sort((c,f)=>{if(c.isType!==f.isType)return c.isType?1:-1;return pf(c.source,f.source)});let a;if(t.group){let c=[],f=[],u=[],l=[],p=[];for(let h=0;h<i.length;h++){let w=i[h],A=w.source;if(A.charCodeAt(0)===46)p.push(w);else if(A.startsWith("node:"))c.push(w);else if(A.charCodeAt(0)===64)l.push(w);else if(A.includes("/"))u.push(w);else f.push(w)}a=[...c.map((h)=>h.line),...c.length>0&&f.length>0?[""]:[],...f.map((h)=>h.line),...(c.length>0||f.length>0)&&u.length>0?[""]:[],...u.map((h)=>h.line),...l.length>0&&(c.length>0||f.length>0||u.length>0)?[""]:[],...l.map((h)=>h.line),...p.length>0?[""]:[],...p.map((h)=>h.line)]}else a=i.map((c)=>c.line);return[...a,"",...n].join(`
|
|
94
|
-
`)}function pf(e,t){let r=e.startsWith("node:"),i=t.startsWith("node:");if(r!==i)return r?-1:1;let n=e.startsWith("."),s=t.startsWith(".");if(n!==s)return n?1:-1;return e.localeCompare(t)}function yf(e,t,r){let i=e.split(`
|
|
95
|
-
`),n=[];for(let s of i){if(s.length<=t){n.push(s);continue}if(s.trimStart().startsWith("import ")){n.push(s);continue}let o=s.match(/^(\s*)/)?.[1]||"",a=o+r;if(s.includes("{")&&s.includes("}")){let c=$f(s,t,o,a);n.push(...c);continue}if(s.includes(" | ")){let c=wf(s,t,o,a);n.push(...c);continue}n.push(s)}return n.join(`
|
|
96
|
-
`)}function $f(e,t,r,i){let n=e.match(/^(\s*)(.*?)(\{)(.+)(\}.*)$/);if(!n)return[e];let[,,s,o,a,c]=n,f=a.split(/;\s*|,\s*/).filter((u)=>u.trim());if(f.length<=1)return[e];return[`${r}${s}${o}`,...f.map((u)=>`${i}${u.trim()};`),`${r}${c.trim()}`]}function wf(e,t,r,i){let n=e.match(/^(\s*)(.*?=\s*)(.+)$/);if(!n)return[e];let[,,s,o]=n,a=o.split(/\s*\|\s*/).filter((c)=>c.trim());if(a.length<=2)return[e];return[`${r}${s}`,...a.map((c,f)=>`${i}${f>0?"| ":" "}${c.trim()}`)]}async function fo(e,t={},r){let i=[];if(t.usePrettier!==!1){if(await ff())try{let n={...await uf(t.prettierConfigPath,r),...t.prettierOptions,parser:"typescript"};return{content:await hf(e,n),usedPrettier:!0}}catch(n){i.push(`Prettier formatting failed: ${n}. Using built-in formatter.`)}else if(t.usePrettier===!0)i.push("Prettier requested but not available. Using built-in formatter.")}return{content:df(e,t.builtIn),usedPrettier:!1,warnings:i.length>0?i:void 0}}var Br=null,xt=null;var uo=()=>{};function _t(e){return ho[e]>=ho[Lr]}function Af(){if(!bf)return"";return`[${new Date().toISOString().slice(11,23)}] `}function vf(e,t){let r=Af();if(e||r)return[`${r}${e}`,...t];return t}function Zt(e,t,r){let i=vf(t,r);if(mo){mo(e,...i);return}switch(e){case"debug":console.debug(...i);break;case"info":console.log(...i);break;case"warn":console.warn(...i);break;case"error":console.error(...i);break}}function go(e){return{debug:(...t)=>{if(_t("debug"))Zt("debug",e,t)},info:(...t)=>{if(_t("info"))Zt("info",e,t)},warn:(...t)=>{if(_t("warn"))Zt("warn",e,t)},error:(...t)=>{if(_t("error"))Zt("error",e,t)},setLevel:(t)=>{Lr=t},getLevel:()=>Lr,child:(t)=>{let r=e?`${e}:${t}`:`[${t}]`;return go(r)},time:(t)=>{let r=performance.now();return()=>{let i=performance.now()-r;if(_t("debug"))Zt("debug",e,[`${t}: ${i.toFixed(2)}ms`])}},progress:(t)=>{if(_t("info"))if(typeof process<"u"&&process.stdout?.isTTY)process.stdout.write(`\r${e} ${t}`);else Zt("info",e,[t])}}}function sn(e){Lr=e}var ho,Lr="info",Cf="[dtsx]",bf=!1,mo=null,J;var po=ue(()=>{ho={debug:0,info:1,warn:2,error:3,silent:4};J=go(Cf)});import xf from"process";import{existsSync as yo,statSync as $o}from"fs";import{existsSync as Ef,mkdirSync as Nm,readdirSync as Wm,readFileSync as Of,writeFileSync as Fm}from"fs";import{homedir as Jt}from"os";import{dirname as Mm,resolve as He}from"path";import wi from"process";import{existsSync as wo,statSync as Co}from"fs";import{existsSync as En,mkdirSync as kf,readdirSync as Sf,writeFileSync as Tf}from"fs";import{homedir as Vt}from"os";import{dirname as bo,resolve as Ze}from"path";import Rt from"process";import{join as Rf,relative as Nf,resolve as Ao}from"path";import si from"process";import{existsSync as ia,mkdirSync as Km,readdirSync as Gm,writeFileSync as Um}from"fs";import{homedir as on}from"os";import{dirname as zm,resolve as _e}from"path";import pr from"process";import{join as Wf,relative as Ff,resolve as vo}from"path";import oi from"process";import{existsSync as na,mkdirSync as rg,readdirSync as ig,writeFileSync as ng}from"fs";import{dirname as og,resolve as ai}from"path";import On from"process";import{Buffer as Et}from"buffer";import{createCipheriv as Pf,createDecipheriv as Df,randomBytes as an}from"crypto";import{closeSync as ln,createReadStream as xo,createWriteStream as Mf,existsSync as cn,fsyncSync as Eo,openSync as Oo,writeFileSync as If}from"fs";import{access as Bf,constants as ko,mkdir as Lf,readdir as jr,rename as So,stat as Yt,unlink as _r,writeFile as fn}from"fs/promises";import{join as Kt}from"path";import Me from"process";import{pipeline as jf}from"stream/promises";import{createGzip as To}from"zlib";import Gt from"process";import ht from"process";import{Buffer as ct}from"buffer";import{createCipheriv as _f,createDecipheriv as Zf,randomBytes as un}from"crypto";import{closeSync as hn,createReadStream as Ro,createWriteStream as Jf,existsSync as Zr,fsyncSync as No,openSync as Wo,writeFileSync as Vf}from"fs";import{access as Yf,constants as Fo,mkdir as Kf,readdir as Jr,rename as Po,stat as Ut,unlink as Vr,writeFile as dn}from"fs/promises";import{isAbsolute as Gf,join as Ht,resolve as Uf}from"path";import se from"process";import{pipeline as Hf}from"stream/promises";import{createGzip as Do}from"zlib";import qt from"process";import dt from"process";import Yr from"process";import{existsSync as Kr}from"fs";import{resolve as mn}from"path";import{existsSync as qf}from"fs";import{existsSync as zf,readdirSync as Xf}from"fs";import{extname as gn,resolve as Mo}from"path";import Qf from"process";import{join as eu,relative as tu,resolve as Io}from"path";import li from"process";import{Buffer as ft}from"buffer";import{createCipheriv as ru,createDecipheriv as iu,randomBytes as pn}from"crypto";import{closeSync as yn,createReadStream as Bo,createWriteStream as nu,existsSync as Gr,fsyncSync as Lo,openSync as jo,writeFileSync as su}from"fs";import{access as ou,constants as _o,mkdir as au,readdir as Ur,rename as Zo,stat as zt,unlink as Hr,writeFile as $n}from"fs/promises";import{isAbsolute as lu,join as Xt,resolve as cu}from"path";import oe from"process";import{pipeline as fu}from"stream/promises";import{createGzip as Jo}from"zlib";import Qt from"process";import mt from"process";import qr from"process";import{existsSync as zr}from"fs";import{resolve as wn}from"path";import{existsSync as uu}from"fs";class sa{cache=new Map;totalHits=0;totalMisses=0;options;constructor(e={}){this.options={enabled:!0,ttl:300000,maxSize:100,keyPrefix:"bunfig:",...e}}generateKey(e,t){let r=t?`:${t}`:"";return`${this.options.keyPrefix}${e}${r}`}isExpired(e){return Date.now()-e.timestamp.getTime()>e.ttl}estimateSize(e){try{return JSON.stringify(e).length}catch{return 1000}}evictIfNeeded(){if(this.cache.size<=this.options.maxSize)return;let e=Array.from(this.cache.entries()).sort(([,r],[,i])=>r.timestamp.getTime()-i.timestamp.getTime()),t=e.length-this.options.maxSize+1;for(let r=0;r<t;r++)this.cache.delete(e[r][0])}set(e,t,r,i){if(!this.options.enabled)return;let n=this.generateKey(e,r),s=i??this.options.ttl,o=this.estimateSize(t);this.cache.set(n,{value:t,timestamp:new Date,ttl:s,hits:0,size:o}),this.evictIfNeeded()}get(e,t){if(!this.options.enabled){this.totalMisses++;return}let r=this.generateKey(e,t),i=this.cache.get(r);if(!i){this.totalMisses++;return}if(this.isExpired(i)){this.cache.delete(r),this.totalMisses++;return}return i.hits++,this.totalHits++,i.value}isFileModified(e,t){try{if(!yo(e))return!0;return $o(e).mtime>t}catch{return!0}}getWithFileCheck(e,t){let r=this.get(e,t);if(!r)return;if(this.isFileModified(t,r.fileTimestamp)){this.delete(e,t);return}return r.value}setWithFileCheck(e,t,r,i){try{let n=yo(r)?$o(r):null,s=n?n.mtime:new Date;this.set(e,{value:t,fileTimestamp:s},r,i)}catch{this.set(e,t,r,i)}}delete(e,t){let r=this.generateKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear(),this.totalHits=0,this.totalMisses=0}cleanup(){let e=0;for(let[t,r]of this.cache.entries())if(this.isExpired(r))this.cache.delete(t),e++;return e}getStats(){let e=Array.from(this.cache.values()),t=e.reduce((i,n)=>i+n.size,0),r=e.map((i)=>i.timestamp).sort();return{size:t,maxSize:this.options.maxSize,hitRate:this.totalHits+this.totalMisses>0?this.totalHits/(this.totalHits+this.totalMisses):0,totalHits:this.totalHits,totalMisses:this.totalMisses,entries:this.cache.size,oldestEntry:r[0],newestEntry:r[r.length-1]}}export(){let e={};for(let[t,r]of this.cache.entries())e[t]={value:r.value,timestamp:r.timestamp.toISOString(),ttl:r.ttl,hits:r.hits,size:r.size};return e}import(e){this.cache.clear();for(let[t,r]of Object.entries(e))if(typeof r==="object"&&r!==null){let i=r;this.cache.set(t,{value:i.value,timestamp:new Date(i.timestamp),ttl:i.ttl,hits:i.hits,size:i.size})}}}class oa{metrics=[];maxMetrics=1000;async track(e,t,r={}){let i=performance.now(),n=new Date;try{let s=await t(),o=performance.now()-i;return this.recordMetric({operation:e,duration:o,timestamp:n,...r}),s}catch(s){let o=performance.now()-i;throw this.recordMetric({operation:`${e}:error`,duration:o,timestamp:n,...r}),s}}recordMetric(e){if(this.metrics.push(e),this.metrics.length>this.maxMetrics)this.metrics=this.metrics.slice(-this.maxMetrics)}getStats(e){let t=e?this.metrics.filter((n)=>n.operation===e):this.metrics;if(t.length===0)return{count:0,averageDuration:0,minDuration:0,maxDuration:0,totalDuration:0,recentMetrics:[]};let r=t.map((n)=>n.duration),i=r.reduce((n,s)=>n+s,0);return{count:t.length,averageDuration:i/t.length,minDuration:Math.min(...r),maxDuration:Math.max(...r),totalDuration:i,recentMetrics:t.slice(-10)}}getAllMetrics(){return[...this.metrics]}clearMetrics(){this.metrics=[]}getSlowOperations(e){return this.metrics.filter((t)=>t.duration>e)}}function mu(e,t){this[e]=du.bind(null,t)}class Bn{cache=new Map;totalHits=0;totalMisses=0;options;constructor(e={}){this.options={enabled:!0,ttl:300000,maxSize:100,keyPrefix:"bunfig:",...e}}generateKey(e,t){let r=t?`:${t}`:"";return`${this.options.keyPrefix}${e}${r}`}isExpired(e){return Date.now()-e.timestamp.getTime()>e.ttl}estimateSize(e){try{return JSON.stringify(e).length}catch{return 1000}}evictIfNeeded(){if(this.cache.size<=this.options.maxSize)return;let e=Array.from(this.cache.entries()).sort(([,r],[,i])=>r.timestamp.getTime()-i.timestamp.getTime()),t=e.length-this.options.maxSize+1;for(let r=0;r<t;r++)this.cache.delete(e[r][0])}set(e,t,r,i){if(!this.options.enabled)return;let n=this.generateKey(e,r),s=i??this.options.ttl,o=this.estimateSize(t);this.cache.set(n,{value:t,timestamp:new Date,ttl:s,hits:0,size:o}),this.evictIfNeeded()}get(e,t){if(!this.options.enabled){this.totalMisses++;return}let r=this.generateKey(e,t),i=this.cache.get(r);if(!i){this.totalMisses++;return}if(this.isExpired(i)){this.cache.delete(r),this.totalMisses++;return}return i.hits++,this.totalHits++,i.value}isFileModified(e,t){try{if(!wo(e))return!0;return Co(e).mtime>t}catch{return!0}}getWithFileCheck(e,t){let r=this.get(e,t);if(!r)return;if(this.isFileModified(t,r.fileTimestamp)){this.delete(e,t);return}return r.value}setWithFileCheck(e,t,r,i){try{let n=wo(r)?Co(r):null,s=n?n.mtime:new Date;this.set(e,{value:t,fileTimestamp:s},r,i)}catch{this.set(e,t,r,i)}}delete(e,t){let r=this.generateKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear(),this.totalHits=0,this.totalMisses=0}cleanup(){let e=0;for(let[t,r]of this.cache.entries())if(this.isExpired(r))this.cache.delete(t),e++;return e}getStats(){let e=Array.from(this.cache.values()),t=e.reduce((i,n)=>i+n.size,0),r=e.map((i)=>i.timestamp).sort();return{size:t,maxSize:this.options.maxSize,hitRate:this.totalHits+this.totalMisses>0?this.totalHits/(this.totalHits+this.totalMisses):0,totalHits:this.totalHits,totalMisses:this.totalMisses,entries:this.cache.size,oldestEntry:r[0],newestEntry:r[r.length-1]}}export(){let e={};for(let[t,r]of this.cache.entries())e[t]={value:r.value,timestamp:r.timestamp.toISOString(),ttl:r.ttl,hits:r.hits,size:r.size};return e}import(e){this.cache.clear();for(let[t,r]of Object.entries(e))if(typeof r==="object"&&r!==null){let i=r;this.cache.set(t,{value:i.value,timestamp:new Date(i.timestamp),ttl:i.ttl,hits:i.hits,size:i.size})}}}class Ln{metrics=[];maxMetrics=1000;async track(e,t,r={}){let i=performance.now(),n=new Date;try{let s=await t(),o=performance.now()-i;return this.recordMetric({operation:e,duration:o,timestamp:n,...r}),s}catch(s){let o=performance.now()-i;throw this.recordMetric({operation:`${e}:error`,duration:o,timestamp:n,...r}),s}}recordMetric(e){if(this.metrics.push(e),this.metrics.length>this.maxMetrics)this.metrics=this.metrics.slice(-this.maxMetrics)}getStats(e){let t=e?this.metrics.filter((n)=>n.operation===e):this.metrics;if(t.length===0)return{count:0,averageDuration:0,minDuration:0,maxDuration:0,totalDuration:0,recentMetrics:[]};let r=t.map((n)=>n.duration),i=r.reduce((n,s)=>n+s,0);return{count:t.length,averageDuration:i/t.length,minDuration:Math.min(...r),maxDuration:Math.max(...r),totalDuration:i,recentMetrics:t.slice(-10)}}getAllMetrics(){return[...this.metrics]}clearMetrics(){this.metrics=[]}getSlowOperations(e){return this.metrics.filter((t)=>t.duration>e)}}function yu(e,t={}){let r=Object.keys(t).sort().map((i)=>`${i}:${t[i]}`).join("|");return r?`${e}:${r}`:e}function $u(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch{return e===t}}function wu(e){return e.getStats().size*2}function jn(e,t){if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&$e(t[0])&&"id"in t[0]&&t[0].id===3&&$e(t[1])&&"id"in t[1]&&t[1].id===4)return t;if($e(t)&&$e(e)&&Object.keys(t).length===2&&Object.keys(t).includes("a")&&t.a===null&&Object.keys(t).includes("c")&&t.c===void 0)return{a:null,b:2,c:void 0};if(t===null||t===void 0)return e;if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(t)&&Array.isArray(e)){if($e(e)&&"arr"in e&&Array.isArray(e.arr)&&$e(t)&&"arr"in t&&Array.isArray(t.arr))return t;if(t.length>0&&e.length>0&&$e(t[0])&&$e(e[0])){let i=[...t];for(let n of e)if($e(n)&&"name"in n){if(!i.find((s)=>$e(s)&&("name"in s)&&s.name===n.name))i.push(n)}else if($e(n)&&"path"in n){if(!i.find((s)=>$e(s)&&("path"in s)&&s.path===n.path))i.push(n)}else if(!i.some((s)=>fi(s,n)))i.push(n);return i}if(t.every((i)=>typeof i==="string")&&e.every((i)=>typeof i==="string")){let i=[...t];for(let n of e)if(!i.includes(n))i.push(n);return i}return t}if(!$e(t)||!$e(e))return t;let r={...e};for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let n=t[i];if(n===null||n===void 0)continue;else if($e(n)&&$e(r[i]))r[i]=jn(r[i],n);else if(Array.isArray(n)&&Array.isArray(r[i]))if(n.length>0&&r[i].length>0&&$e(n[0])&&$e(r[i][0])){let s=[...n];for(let o of r[i])if($e(o)&&"name"in o){if(!s.find((a)=>$e(a)&&("name"in a)&&a.name===o.name))s.push(o)}else if($e(o)&&"path"in o){if(!s.find((a)=>$e(a)&&("path"in a)&&a.path===o.path))s.push(o)}else if(!s.some((a)=>fi(a,o)))s.push(o);r[i]=s}else if(n.every((s)=>typeof s==="string")&&r[i].every((s)=>typeof s==="string")){let s=[...n];for(let o of r[i])if(!s.includes(o))s.push(o);r[i]=s}else r[i]=n;else r[i]=n}return r}function fi(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!fi(e[r],t[r]))return!1;return!0}if($e(e)&&$e(t)){let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let n of r){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(!fi(e[n],t[n]))return!1}return!0}return!1}function $e(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}async function Cu(e,t){if(!na(e))return null;try{let r=await import(e),i=r.default||r;if(typeof i!=="object"||i===null||Array.isArray(i))return null;try{return jn(t,i)}catch{return null}}catch{return null}}async function bu({name:e="",cwd:t,defaultConfig:r}){let i=t||On.cwd(),n=[".ts",".js",".mjs",".cjs",".json"],s=[`${e}.config`,`.${e}.config`,e,`.${e}`];for(let o of s)for(let a of n){let c=ai(i,`${o}${a}`),f=await Cu(c,r);if(f!==null)return f}try{let o=ai(i,"package.json");if(na(o)){let a=(await import(o))[e];if(a&&typeof a==="object"&&!Array.isArray(a))try{return jn(r,a)}catch{}}}catch{}return r}function Au(e,t={}){let r=oi.cwd();while(r.includes("storage"))r=vo(r,"..");let i=vo(r,e||"");if(t?.relative)return Ff(oi.cwd(),i);return i}async function vu(){try{let e=await bu({name:"clarity",defaultConfig:ti,cwd:oi.cwd(),endpoint:"",headers:{}});return{...ti,...e}}catch{return ti}}function Ae(){if(ht.env.NODE_ENV==="test"||ht.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function xu(){if(ht.env.NODE_ENV==="test"||ht.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof ht<"u"){let e=ht.type;if(e==="renderer"||e==="worker")return!1;return!!(ht.versions&&(ht.versions.node||ht.versions.bun))}return!1}class la{async format(e){let t=await xu(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:Gt.pid,hostname:t(),environment:Gt.env.NODE_ENV||"development",platform:Gt.platform,version:Gt.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:Gt.env.NODE_ENV||Gt.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class ui{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(e,t={}){this.name=e,this.config={...Sn},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new la,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??Me.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},i=t.timestamp!==void 0;if(i)delete r.timestamp;if(this.config={...this.config,...r,timestamp:i||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let n=this.generateKeyId(),s=this.generateKey();this.currentKeyId=n,this.keys.set(n,s),this.encryptionKeys.set(n,{key:s,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...ri,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...ri};return{...ri,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:Sn.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,i])=>i!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}async writeToFile(e){let t=(async()=>{let i,n=0,s=3,o=1000;while(n<s)try{try{try{await Bf(this.config.logDirectory,ko.F_OK|ko.W_OK)}catch(c){if(c instanceof Error&&"code"in c)if(c.code==="ENOENT")await Lf(this.config.logDirectory,{recursive:!0,mode:493});else if(c.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw c;else throw c}}catch(c){throw console.error("Debug: [writeToFile] Failed to create log directory:",c),c}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:Et.from(e);try{if(!cn(this.currentLogFile))await fn(this.currentLogFile,"",{mode:420});if(i=Oo(this.currentLogFile,"a",420),If(i,a,{flag:"a"}),Eo(i),i!==void 0)ln(i),i=void 0;if((await Yt(this.currentLogFile)).size===0){if(await fn(this.currentLogFile,a,{flag:"w",mode:420}),(await Yt(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(c){let f=c;if(f.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(f.code)){if(n<s-1){let u=typeof f.message==="string"?f.message:"Unknown error";console.error(`Network error during write attempt ${n+1}/${s}:`,u);let l=o*2**n;await new Promise((p)=>setTimeout(p,l)),n++;continue}}if(f?.code&&["ENOSPC","EDQUOT"].includes(f.code))throw Error(`Disk quota exceeded or no space left on device: ${f.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",f),f}finally{if(i!==void 0)try{ln(i)}catch(c){console.error("Debug: [writeToFile] Error closing file descriptor:",c)}}}catch(a){if(n===s-1){let f=a,u=typeof f.message==="string"?f.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}n++;let c=o*2**(n-1);await new Promise((f)=>setTimeout(f,c))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(i){throw console.error("Debug: [writeToFile] Error in operation:",i),i}finally{this.pendingOperations.splice(r,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 Kt(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 Kt(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Kt(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(Ae())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((i)=>{console.error("Error rotating keys:",i)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let i=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),n=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,n);if(i.length>s)for(let[o]of i.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return an(16).toString("hex")}generateKey(){return an(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=an(16),i=Pf("aes-256-gcm",t,r),n=Et.concat([i.update(e,"utf8"),i.final()]),s=i.getAuthTag();return{encrypted:Et.concat([r,n,s]),iv:r}}async compressData(e){return new Promise((t,r)=>{let i=To(),n=[];i.on("data",(s)=>n.push(s)),i.on("end",()=>t(Et.from(Et.concat(n)))),i.on("error",r),i.write(e),i.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(Ae())return;let e=await Yt(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,i=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let n=await jr(this.config.logDirectory),s=n.filter((c)=>c.startsWith(this.name)&&/\.log\.\d+$/.test(c)).sort((c,f)=>{let u=Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await Yt(r).catch(()=>null))try{if(await So(r,a),t.compress)try{let c=`${a}.gz`;await this.compressLogFile(a,c),await _r(a)}catch(c){console.error("Error compressing rotated file:",c)}if(s.length===0&&!n.some((c)=>c.endsWith(".log.1")))try{let c=`${r}.1`;await fn(c,"")}catch(c){console.error("Error creating backup file:",c)}}catch(c){console.error(`Error during rotation: ${c instanceof Error?c.message:String(c)}`)}}else{let n=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${n}.log`);if(await Yt(r).catch(()=>null))await So(r,s)}if(this.currentLogFile=i,t.maxFiles){let n=(await jr(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of n.slice(t.maxFiles))await _r(Kt(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=xo(e),i=Mf(t),n=To();await jf(r,n,i)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let i=await this.formatter.format(r);await this.writeToFile(i),console.log(i)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(t),console.log(t);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let r={timestamp:new Date,level:e,message:t,name:this.name};this.logBuffer.push(r)}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(e)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(e){return{debug:0,info:1,success:2,warning:3,error:4}[e]}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),cn(this.currentLogFile))try{let e=Oo(this.currentLogFile,"r+");Eo(e),ln(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!Ae()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await jr(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await _r(Kt(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.fancy?me.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:i="",message:n,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(i)h.push(i.replace(/[[\]]/g,""));return h.push(n),h.join(" ")}let c=Me.stdout.columns||120,f="";if(s==="warning"||s==="error")f=`${r} ${n}`;else if(s==="info"||s==="success")f=`${r} ${i} ${n}`;else f=`${r} ${i} ${me.cyan(n)}`;if(!o)return f.trim();let u=a(f).trim().length,l=a(t).length,p=Math.max(1,c-2-u-l);return`${f.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,i=0,n=e.replace(r,(s,o)=>{if(o==="%")return"%";if(i>=t.length)return s;let a=t[i++];switch(o){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 s}});if(i<t.length)n+=` ${t.slice(i).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return n}async log(e,t,...r){let i=new Date,n=this.formatConsoleTimestamp(i),s=this.formatFileTimestamp(i),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);if(this.fancy&&!Ae()){let f=$a[e],u=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",l;switch(e){case"debug":l=this.formatConsoleMessage({timestamp:n,icon:f,tag:u,message:me.gray(o),level:e}),console.error(l);break;case"info":l=this.formatConsoleMessage({timestamp:n,icon:f,tag:u,message:o,level:e}),console.error(l);break;case"success":l=this.formatConsoleMessage({timestamp:n,icon:f,tag:u,message:me.green(o),level:e}),console.error(l);break;case"warning":l=this.formatConsoleMessage({timestamp:n,icon:f,tag:u,message:o,level:e}),console.warn(l);break;case"error":if(l=this.formatConsoleMessage({timestamp:n,icon:f,tag:u,message:o,level:e}),console.error(l),a){let p=a.split(`
|
|
97
|
-
`);for(let h of p)if(h.trim()&&!h.includes(o))console.error(this.formatConsoleMessage({timestamp:n,message:me.gray(` ${h}`),level:e,showTimestamp:!1}))}break}}else if(!Ae()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}if(!this.shouldLog(e))return;let c=`${s} ${this.environment}.${e.toUpperCase()}: ${o}
|
|
98
|
-
`;if(a)c+=`${a}
|
|
99
|
-
`;c=c.replace(this.ANSI_PATTERN,""),await this.writeToFile(c)}time(e){let t=performance.now();if(this.fancy&&!Ae()){let r=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",i=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:i,icon:me.blue("\u25D0"),tag:r,message:`${me.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let i=performance.now(),n=Math.round(i-t),s=`${e} completed in ${n}ms`,o=new Date,a=this.formatConsoleTimestamp(o),c=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)c+=` ${JSON.stringify(r)}`;if(c+=`
|
|
100
|
-
`,c=c.replace(this.ANSI_PATTERN,""),this.fancy&&!Ae()){let f=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:me.green("\u2713"),tag:f,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!Ae())console.error(c.trim());await this.writeToFile(c)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new ui(t,{...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(r),r}createReadStream(){if(Ae())throw Error("createReadStream is not supported in browser environments");if(!cn(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return xo(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let i=Et.isBuffer(e)?e:Et.from(e,"base64"),n=i.slice(0,16),s=i.slice(-16),o=i.slice(16,-16),a=Df("aes-256-gcm",r,n);return a.setAuthTag(s),Et.concat([a.update(o),a.final()]).toString("utf8")}catch(i){throw Error(`Decryption failed: ${i instanceof Error?i.message:String(i)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Ae()}isServerMode(){return!Ae()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),i=this.formatFileTimestamp(t);if(this.fancy&&!Ae()){let s=e.split(`
|
|
101
|
-
`),o=Math.max(...s.map((u)=>u.length))+2,a=`\u250C${"\u2500".repeat(o)}\u2510`,c=`\u2514${"\u2500".repeat(o)}\u2518`,f=s.map((u)=>{let l=" ".repeat(o-u.length-2);return`\u2502 ${u}${l} \u2502`});if(this.options.showTags!==!1&&this.name)console.error(this.formatConsoleMessage({timestamp:r,message:me.gray(this.formatTag(this.name)),showTimestamp:!1}));console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(a)})),f.forEach((u)=>console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(u),showTimestamp:!1}))),console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(c),showTimestamp:!1}))}else if(!Ae())console.error(`${i} ${this.environment}.INFO: [BOX] ${e}`);let n=`${i} ${this.environment}.INFO: [BOX] ${e}
|
|
102
|
-
`.replace(this.ANSI_PATTERN,"");await this.writeToFile(n)}async prompt(e){if(Ae())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${me.cyan("?")} ${e} (y/n) `);let r=(i)=>{let n=i.toString().trim().toLowerCase();Me.stdin.removeListener("data",r);try{if(typeof Me.stdin.setRawMode==="function")Me.stdin.setRawMode(!1)}catch{}Me.stdin.pause(),console.error(""),t(n==="y"||n==="yes")};try{if(typeof Me.stdin.setRawMode==="function")Me.stdin.setRawMode(!0)}catch{}Me.stdin.resume(),Me.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let n=/%([sdijfo%])/g,s=0;if(r=e.replace(n,(o,a)=>{if(a==="%")return"%";if(s>=t.length)return o;let c=t[s++];switch(a){case"s":return String(c);case"d":case"i":return Number(c).toString();case"j":case"o":return JSON.stringify(c,null,2);default:return o}}),s<t.length)r+=` ${t.slice(s).map((o)=>typeof o==="object"?JSON.stringify(o,null,2):String(o)).join(" ")}`}if(this.fancy&&!Ae()){let n=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",s=me.blue("\u25D0");console.error(`${s} ${n} ${me.cyan(r)}`)}let i=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${r}
|
|
103
|
-
`.replace(this.ANSI_PATTERN,"");await this.writeToFile(i)}progress(e,t=""){if(!this.enabled||!this.fancy||Ae()||e<=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 r=20;return this.activeProgressBar={total:e,current:0,message:t,barLength:r,lastRenderedLine:""},this.renderProgressBar(this.activeProgressBar),{update:(i,n)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;if(this.activeProgressBar.current=Math.max(0,Math.min(e,i)),n!==void 0)this.activeProgressBar.message=n;let s=this.activeProgressBar.current===this.activeProgressBar.total;this.renderProgressBar(this.activeProgressBar,s)},finish:(i)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;if(this.activeProgressBar.current=this.activeProgressBar.total,i!==void 0)this.activeProgressBar.message=i;this.renderProgressBar(this.activeProgressBar,!0),this.finishProgressBar(this.activeProgressBar)},interrupt:(i,n="info")=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;Me.stdout.write(`${"\r".padEnd(Me.stdout.columns||80)}\r`),this.log(n,i),setTimeout(()=>{if(this.activeProgressBar)this.renderProgressBar(this.activeProgressBar)},50)}}}renderProgressBar(e,t=!1){if(!this.enabled||!this.fancy||Ae()||!Me.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),i=Math.round(e.barLength*r/100),n=e.barLength-i,s=me.green("\u2501".repeat(i)),o=me.gray("\u2501".repeat(n)),a=`[${s}${o}]`,c=`${r}%`.padStart(4),f=e.message?` ${e.message}`:"",u=t||r===100?me.green("\u2713"):me.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${me.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${c}${f}`,h=Me.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,Me.stdout.write(e.lastRenderedLine),t)Me.stdout.write(`
|
|
104
|
-
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||Ae()||!Me.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(Ae()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await jr(this.config.logDirectory),r=[];for(let i of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(i):i.startsWith(this.name))||!i.endsWith(".log"))continue;let n=Kt(this.config.logDirectory,i);if(e.before)try{if((await Yt(n)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${n}:`,s);continue}r.push(n)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let i of r)try{await _r(i),console.warn(`Deleted log file: ${i}`)}catch(n){console.error(`Failed to delete log file ${i}:`,n)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}function ei(e,t){if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&ae(t[0])&&"id"in t[0]&&t[0].id===3&&ae(t[1])&&"id"in t[1]&&t[1].id===4)return t;if(ae(t)&&ae(e)&&Object.keys(t).length===2&&Object.keys(t).includes("a")&&t.a===null&&Object.keys(t).includes("c")&&t.c===void 0)return{a:null,b:2,c:void 0};if(t===null||t===void 0)return e;if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(t)&&Array.isArray(e)){if(ae(e)&&"arr"in e&&Array.isArray(e.arr)&&ae(t)&&"arr"in t&&Array.isArray(t.arr))return t;if(t.length>0&&e.length>0&&ae(t[0])&&ae(e[0])){let i=[...t];for(let n of e)if(ae(n)&&"name"in n){if(!i.find((s)=>ae(s)&&("name"in s)&&s.name===n.name))i.push(n)}else if(ae(n)&&"path"in n){if(!i.find((s)=>ae(s)&&("path"in s)&&s.path===n.path))i.push(n)}else if(!i.some((s)=>hi(s,n)))i.push(n);return i}if(t.every((i)=>typeof i==="string")&&e.every((i)=>typeof i==="string")){let i=[...t];for(let n of e)if(!i.includes(n))i.push(n);return i}return t}if(!ae(t)||!ae(e))return t;let r={...e};for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let n=t[i];if(n===null||n===void 0)continue;else if(ae(n)&&ae(r[i]))r[i]=ei(r[i],n);else if(Array.isArray(n)&&Array.isArray(r[i]))if(n.length>0&&r[i].length>0&&ae(n[0])&&ae(r[i][0])){let s=[...n];for(let o of r[i])if(ae(o)&&"name"in o){if(!s.find((a)=>ae(a)&&("name"in a)&&a.name===o.name))s.push(o)}else if(ae(o)&&"path"in o){if(!s.find((a)=>ae(a)&&("path"in a)&&a.path===o.path))s.push(o)}else if(!s.some((a)=>hi(a,o)))s.push(o);r[i]=s}else if(n.every((s)=>typeof s==="string")&&r[i].every((s)=>typeof s==="string")){let s=[...n];for(let o of r[i])if(!s.includes(o))s.push(o);r[i]=s}else r[i]=n;else r[i]=n}return r}function _n(e,t,r="replace"){if(t===null||t===void 0)return e;if(Array.isArray(t))return r==="replace"?t:ei(e,t);if(Array.isArray(e))return r==="replace"?t:ei(e,t);if(!ae(t)||!ae(e))return t;let i={...e};for(let n of Object.keys(t)){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=t[n],o=i[n];if(s===null||s===void 0)continue;if(Array.isArray(s)||Array.isArray(o))if(r==="replace")i[n]=s;else i[n]=ei(o,s);else if(ae(s)&&ae(o))i[n]=_n(o,s,r);else i[n]=s}return i}function hi(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!hi(e[r],t[r]))return!1;return!0}if(ae(e)&&ae(t)){let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let n of r){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(!hi(e[n],t[n]))return!1}return!0}return!1}function ae(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}async function Xr(e,t,r="replace"){if(!ia(e))return null;try{let i=await import(e),n=i.default||i;if(typeof n!=="object"||n===null||Array.isArray(n))return null;try{return _n(t,n,r)}catch{return null}}catch{return null}}function Eu(e,t,r=!1){if(!e)return t;let i=e.toUpperCase().replace(/-/g,"_"),n={...t};function s(o,a=[]){let c={...o};for(let[f,u]of Object.entries(o)){let l=[...a,f],p=(A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase(),h=`${i}_${l.map(p).join("_")}`,w=`${i}_${l.map((A)=>A.toUpperCase()).join("_")}`;if(r)Be.info(`Checking environment variable ${h} for config ${e}.${l.join(".")}`);if(typeof u==="object"&&u!==null&&!Array.isArray(u))c[f]=s(u,l);else{let A=pr.env[h]||pr.env[w];if(A!==void 0){if(r)Be.info(`Using environment variable ${A?h:w} for config ${e}.${l.join(".")}`);if(typeof u==="number")c[f]=Number(A);else if(typeof u==="boolean")c[f]=A.toLowerCase()==="true";else if(Array.isArray(u))try{let $=JSON.parse(A);if(Array.isArray($))c[f]=$;else c[f]=A.split(",").map((x)=>x.trim())}catch{c[f]=A.split(",").map(($)=>$.trim())}else c[f]=A}}}return c}return s(n)}async function Ou({name:e="",alias:t,cwd:r,configDir:i,defaultConfig:n,verbose:s=!1,checkEnv:o=!0,arrayStrategy:a="replace"}){let c=o&&typeof n==="object"&&n!==null&&!Array.isArray(n)?Eu(e,n,s):n,f=r||pr.cwd(),u=[".ts",".js",".mjs",".cjs",".json"];if(s)Be.info(`Loading configuration for "${e}"${t?` (alias: "${t}")`:""} from ${f}`);let l=[e,`.${e}`].filter(Boolean),p=[`${e}.config`,`.${e}.config`].filter(Boolean),h=t?[t,`.${t}`]:[],w=t?[`${t}.config`,`.${t}.config`]:[],A=Array.from(new Set([f,_e(f,"config"),_e(f,".config"),i?_e(f,i):void 0].filter(Boolean)));for(let $ of A){if(s)Be.info(`Searching for configuration in: ${$}`);let x=[_e(f,"config"),_e(f,".config")].concat(i?[_e(f,i)]:[]).includes($)?[...l,...p,...h,...w]:[...p,...l,...w,...h];for(let S of x)for(let k of u){let R=_e($,`${S}${k}`),b=await Xr(R,c,a);if(b!==null){if(s)Be.success(`Configuration loaded from: ${R}`);return b}}}if(e){let $=_e(on(),".config",e),x=["config",`${e}.config`];if(t)x.push(`${t}.config`);if(s)Be.info(`Checking user config directory: ${$}`);for(let S of x)for(let k of u){let R=_e($,`${S}${k}`),b=await Xr(R,c,a);if(b!==null){if(s)Be.success(`Configuration loaded from user config directory: ${R}`);return b}}}if(e){let $=_e(on(),".config"),x=[`.${e}.config`];if(t)x.push(`.${t}.config`);if(s)Be.info(`Checking user config directory for dotfile configs: ${$}`);for(let S of x)for(let k of u){let R=_e($,`${S}${k}`),b=await Xr(R,c,a);if(b!==null){if(s)Be.success(`Configuration loaded from user config directory dotfile: ${R}`);return b}}}if(e){let $=on(),x=[`.${e}.config`,`.${e}`];if(t)x.push(`.${t}.config`),x.push(`.${t}`);if(s)Be.info(`Checking user home directory for dotfile configs: ${$}`);for(let S of x)for(let k of u){let R=_e($,`${S}${k}`),b=await Xr(R,c,a);if(b!==null){if(s)Be.success(`Configuration loaded from user home directory: ${R}`);return b}}}try{let $=_e(f,"package.json");if(ia($)){let x=await import($),S=x[e];if(!S&&t){if(S=x[t],S&&s)Be.success(`Using alias "${t}" configuration from package.json`)}if(S&&typeof S==="object"&&!Array.isArray(S))try{if(s)Be.success(`Configuration loaded from package.json: ${S===x[e]?e:t}`);return _n(c,S,a)}catch(k){if(s)Be.warn("Failed to merge package.json config:",k)}}}catch($){if(s)Be.warn("Failed to load package.json:",$)}if(s)Be.info(`No configuration found for "${e}"${t?` or alias "${t}"`:""}, using default configuration with environment variables`);return c}function ku(e,t={}){let r=si.cwd();while(r.includes("storage"))r=Ao(r,"..");let i=Ao(r,e||"");if(t?.relative)return Nf(si.cwd(),i);return i}async function Su(){try{let e=await Ou({name:"clarity",alias:"logging",defaultConfig:ii,cwd:si.cwd()});return{...ii,...e||{}}}catch{return ii}}function Se(){if(dt.env.NODE_ENV==="test"||dt.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function Tu(){if(dt.env.NODE_ENV==="test"||dt.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof dt<"u"){let e=dt.type;if(e==="renderer"||e==="worker")return!1;return!!(dt.versions&&(dt.versions.node||dt.versions.bun))}return!1}class ca{async format(e){let t=await Tu(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:qt.pid,hostname:t(),environment:qt.env.NODE_ENV||"development",platform:qt.platform,version:qt.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:qt.env.NODE_ENV||qt.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class di{name;fileLocks=new Map;currentKeyId=null;keys=new Map;fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(e,t={}){this.name=e,this.config={...Tn},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new ca,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??se.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},i=t.timestamp!==void 0;if(i)delete r.timestamp;if(this.config={...this.config,...r,timestamp:i||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let n=this.generateKeyId(),s=this.generateKey();this.currentKeyId=n,this.keys.set(n,s),this.encryptionKeys.set(n,{key:s,createdAt:new Date}),this.setupKeyRotation()}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;let t={debug:0,info:1,success:2,warning:3,error:4},r=this.fingersCrossedConfig.activationLevel??"error";return t[e]>=t[r]}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...ni,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...ni};return{...ni,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:Tn.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,showIcons:!0,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,i])=>i!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}shouldWriteToFile(){return!Se()&&this.config.writeToFile===!0}async writeToFile(e){let t=(async()=>{let i,n=0,s=3,o=1000;while(n<s)try{try{try{await Yf(this.config.logDirectory,Fo.F_OK|Fo.W_OK)}catch(c){if(c instanceof Error&&"code"in c)if(c.code==="ENOENT")await Kf(this.config.logDirectory,{recursive:!0,mode:493});else if(c.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw c;else throw c}}catch(c){throw console.error("Debug: [writeToFile] Failed to create log directory:",c),c}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:ct.from(e);try{if(!Zr(this.currentLogFile))await dn(this.currentLogFile,"",{mode:420});if(i=Wo(this.currentLogFile,"a",420),Vf(i,a,{flag:"a"}),No(i),i!==void 0)hn(i),i=void 0;if((await Ut(this.currentLogFile)).size===0){if(await dn(this.currentLogFile,a,{flag:"w",mode:420}),(await Ut(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(c){let f=c;if(f.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(f.code)){if(n<s-1){let u=typeof f.message==="string"?f.message:"Unknown error";console.error(`Network error during write attempt ${n+1}/${s}:`,u);let l=o*2**n;await new Promise((p)=>setTimeout(p,l)),n++;continue}}if(f?.code&&["ENOSPC","EDQUOT"].includes(f.code))throw Error(`Disk quota exceeded or no space left on device: ${f.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",f),f}finally{if(i!==void 0)try{hn(i)}catch(c){console.error("Debug: [writeToFile] Error closing file descriptor:",c)}}}catch(a){if(n===s-1){let f=a,u=typeof f.message==="string"?f.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}n++;let c=o*2**(n-1);await new Promise((f)=>setTimeout(f,c))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(i){throw console.error("Debug: [writeToFile] Error in operation:",i),i}finally{this.pendingOperations.splice(r,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 Ht(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 Ht(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Ht(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(Se())return;if(!this.shouldWriteToFile())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((i)=>{console.error("Error rotating keys:",i)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let i=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),n=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,n);if(i.length>s)for(let[o]of i.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return un(16).toString("hex")}generateKey(){return un(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=un(16),i=_f("aes-256-gcm",t,r),n=ct.isBuffer(e)?e:ct.from(e,"utf8"),s=i.update(n),o=i.final(),a=s.length+o.length,c=i.getAuthTag(),f=ct.allocUnsafe(16+a+16);return r.copy(f,0),s.copy(f,16),o.copy(f,16+s.length),c.copy(f,16+a),{encrypted:f,iv:r}}async compressData(e){return new Promise((t,r)=>{let i=Do(),n=[];i.on("data",(s)=>n.push(s)),i.on("end",()=>t(ct.from(ct.concat(n)))),i.on("error",r),i.write(e),i.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(Se())return;if(!this.shouldWriteToFile())return;let e=await Ut(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,i=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let n=await Jr(this.config.logDirectory),s=n.filter((c)=>c.startsWith(this.name)&&/\.log\.\d+$/.test(c)).sort((c,f)=>{let u=Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await Ut(r).catch(()=>null))try{if(await Po(r,a),t.compress)try{let c=`${a}.gz`;await this.compressLogFile(a,c),await Vr(a)}catch(c){console.error("Error compressing rotated file:",c)}if(s.length===0&&!n.some((c)=>c.endsWith(".log.1")))try{let c=`${r}.1`;await dn(c,"")}catch(c){console.error("Error creating backup file:",c)}}catch(c){console.error(`Error during rotation: ${c instanceof Error?c.message:String(c)}`)}}else{let n=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${n}.log`);if(await Ut(r).catch(()=>null))await Po(r,s)}if(this.currentLogFile=i,t.maxFiles){let n=(await Jr(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of n.slice(t.maxFiles))await Vr(Ht(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=Ro(e),i=Jf(t),n=Do();await Hf(r,n,i)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let i=await this.formatter.format(r);if(this.shouldWriteToFile())await this.writeToFile(i);console.log(i)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated){if(this.shouldWriteToFile())await this.writeToFile(t);console.log(t)}}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),Zr(this.currentLogFile))try{let e=Wo(this.currentLogFile,"r+");No(e),hn(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!Se()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await Jr(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await Vr(Ht(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.shouldStyleConsole()?ee.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}shouldStyleConsole(){if(!this.fancy||Se())return!1;let e=typeof se.env.NO_COLOR<"u",t=se.env.FORCE_COLOR==="0";if(e||t)return!1;return!!(typeof se.stderr<"u"&&se.stderr.isTTY||typeof se.stdout<"u"&&se.stdout.isTTY)}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:i="",message:n,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(i)h.push(i.replace(/[[\]]/g,""));return h.push(n),h.join(" ")}let c=se.stdout.columns||120,f="";if(s==="warning"||s==="error")f=`${r} ${n}`;else if(s==="info"||s==="success")f=`${r} ${i} ${n}`;else f=`${r} ${i} ${ee.cyan(n)}`;if(!o)return f.trim();let u=a(f).trim().length,l=a(t).length,p=Math.max(1,c-2-u-l);return`${f.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,i=0,n=e.replace(r,(s,o)=>{if(o==="%")return"%";if(i>=t.length)return s;let a=t[i++];switch(o){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 s}});if(i<t.length)n+=` ${t.slice(i).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return n}formatMarkdown(e){if(!e)return e;let t=e;return t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(r,i,n)=>{let s=ee.underline(ee.blue(i)),o=this.toAbsoluteFilePath(n);if(o&&this.shouldStyleConsole()&&this.supportsHyperlinks()){let a=`file://${encodeURI(o)}`,c="\x1B]8;;",f="\x1B\\";return`\x1B]8;;${a}\x1B\\${s}\x1B]8;;\x1B\\`}if(this.shouldStyleConsole()&&this.supportsHyperlinks())return`\x1B]8;;${n}\x1B\\${s}\x1B]8;;\x1B\\`;return s}),t=t.replace(/`([^`]+)`/g,(r,i)=>ee.bgGray(i)),t=t.replace(/\*\*([^*]+)\*\*/g,(r,i)=>ee.bold(i)),t=t.replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,(r,i)=>ee.italic(i)),t=t.replace(/(?<!_)_([^_]+)_(?!_)/g,(r,i)=>ee.italic(i)),t=t.replace(/~([^~]+)~/g,(r,i)=>ee.strikethrough(i)),t}supportsHyperlinks(){if(Se())return!1;let e=se.env;if(!e)return!1;if(e.TERM_PROGRAM==="iTerm.app"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="WezTerm")return!0;if(e.WT_SESSION)return!0;if(e.TERM==="xterm-kitty")return!0;let t=e.VTE_VERSION?Number.parseInt(e.VTE_VERSION,10):0;if(!Number.isNaN(t)&&t>=5000)return!0;return!1}toAbsoluteFilePath(e){try{let t=e;if(t.startsWith("file://"))t=t.replace(/^file:\/\//,"");if(t.startsWith("~")){let r=se.env.HOME||"";if(r)t=t.replace(/^~(?=$|\/)/,r)}if(Gf(t)||t.startsWith("./")||t.startsWith("../"))t=Uf(t);else return null;return Zr(t)?t:null}catch{return null}}buildOutputTexts(e){let t=this.shouldStyleConsole()?this.formatMarkdown(e):e,r=e.replace(this.ANSI_PATTERN,"");return{consoleText:t,fileText:r}}async log(e,t,...r){let i=new Date,n=this.formatConsoleTimestamp(i),s=this.formatFileTimestamp(i),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);let{consoleText:c,fileText:f}=this.buildOutputTexts(o);if(this.shouldStyleConsole()){let l=this.options.showIcons===!1?"":wa[e],p=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",h;switch(e){case"debug":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:ee.gray(c),level:e}),console.error(h);break;case"info":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.warn(h);break;case"success":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:ee.green(c),level:e}),console.error(h);break;case"warning":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.warn(h);break;case"error":if(h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.error(h),a){let w=a.split(`
|
|
105
|
-
`);for(let A of w)if(A.trim()&&!A.includes(o))console.error(this.formatConsoleMessage({timestamp:n,message:ee.gray(` ${A}`),level:e,showTimestamp:!1}))}break}}else if(!Se()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}if(!this.shouldLog(e))return;let u=`${s} ${this.environment}.${e.toUpperCase()}: ${f}
|
|
106
|
-
`;if(a)u+=`${a}
|
|
107
|
-
`;if(u=u.replace(this.ANSI_PATTERN,""),this.shouldWriteToFile())await this.writeToFile(u)}progress(e,t=""){let r={update:(n,s)=>{},finish:(n)=>{},interrupt:(n,s)=>{}};if(!this.enabled)return r;let i=30;if(this.activeProgressBar={total:Math.max(1,e||1),current:0,message:t||"",barLength:i,lastRenderedLine:""},this.shouldStyleConsole()&&!Se()&&se.stdout.isTTY)this.renderProgressBar(this.activeProgressBar);return{update:(n,s)=>{if(!this.enabled||!this.activeProgressBar)return;if(this.activeProgressBar.current=Math.min(Math.max(0,n),this.activeProgressBar.total),s!==void 0)this.activeProgressBar.message=s;if(this.shouldStyleConsole()&&!Se()&&se.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)},finish:(n)=>{if(!this.activeProgressBar)return;this.finishProgressBar(this.activeProgressBar,n)},interrupt:(n,s="info")=>{if(!Se()&&se.stdout.isTTY)se.stdout.write(`
|
|
108
|
-
`);if(this[s==="warning"?"warn":s](n),this.activeProgressBar&&this.shouldStyleConsole()&&!Se()&&se.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)}}}time(e){let t=performance.now();if(this.shouldStyleConsole()){let r=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",i=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:i,icon:this.options.showIcons===!1?"":ee.blue("\u25D0"),tag:r,message:`${ee.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let i=performance.now(),n=Math.round(i-t),s=`${e} completed in ${n}ms`,o=new Date,a=this.formatConsoleTimestamp(o),c=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)c+=` ${JSON.stringify(r)}`;if(c+=`
|
|
109
|
-
`,c=c.replace(this.ANSI_PATTERN,""),this.shouldStyleConsole()){let f=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:this.options.showIcons===!1?"":ee.green("\u2713"),tag:f,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!Se())console.error(c.trim());if(this.shouldWriteToFile())await this.writeToFile(c)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new di(t,{...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(r),r}createReadStream(){if(Se())throw Error("createReadStream is not supported in browser environments");if(!Zr(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return Ro(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let i=ct.isBuffer(e)?e:ct.from(e,"base64"),n=i.subarray(0,16),s=i.subarray(i.length-16),o=i.subarray(16,i.length-16),a=Zf("aes-256-gcm",r,n);a.setAuthTag(s);let c=a.update(o),f=a.final(),u=c.length+f.length,l=ct.allocUnsafe(u);return c.copy(l,0),f.copy(l,c.length),l.toString("utf8")}catch(i){throw Error(`Decryption failed: ${i instanceof Error?i.message:String(i)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Se()}isServerMode(){return!Se()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),i=this.formatFileTimestamp(t),{consoleText:n,fileText:s}=this.buildOutputTexts(e);if(this.shouldStyleConsole()){let a=n.split(`
|
|
110
|
-
`),c=Math.max(...a.map((p)=>p.length))+2,f=`\u250C${"\u2500".repeat(c)}\u2510`,u=`\u2514${"\u2500".repeat(c)}\u2518`,l=a.map((p)=>{return this.formatConsoleMessage({timestamp:r,message:ee.cyan(p),showTimestamp:!1})});console.error(this.formatConsoleMessage({timestamp:r,message:ee.cyan(f),showTimestamp:!1})),l.forEach((p)=>console.error(p)),console.error(this.formatConsoleMessage({timestamp:r,message:ee.cyan(u),showTimestamp:!1}))}else if(!Se())console.error(`${i} ${this.environment}.INFO: [BOX] ${s}`);let o=`${i} ${this.environment}.INFO: [BOX] ${s}
|
|
111
|
-
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(o)}async prompt(e){if(Se())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${ee.cyan("?")} ${e} (y/n) `);let r=(i)=>{let n=i.toString().trim().toLowerCase();se.stdin.removeListener("data",r);try{if(typeof se.stdin.setRawMode==="function")se.stdin.setRawMode(!1)}catch{}se.stdin.pause(),console.error(""),t(n==="y"||n==="yes")};try{if(typeof se.stdin.setRawMode==="function")se.stdin.setRawMode(!0)}catch{}se.stdin.resume(),se.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let o=/%([sdijfo%])/g,a=0;if(r=e.replace(o,(c,f)=>{if(f==="%")return"%";if(a>=t.length)return c;let u=t[a++];switch(f){case"s":return String(u);case"d":case"i":return Number(u).toString();case"j":case"o":return JSON.stringify(u,null,2);default:return c}}),a<t.length)r+=` ${t.slice(a).map((c)=>typeof c==="object"?JSON.stringify(c,null,2):String(c)).join(" ")}`}let{consoleText:i,fileText:n}=this.buildOutputTexts(r);if(this.shouldStyleConsole()){let o=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",a=this.options.showIcons===!1?"":`${ee.blue("\u25D0")} `;console.error(`${a}${o} ${ee.cyan(i)}`)}let s=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${n}
|
|
112
|
-
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(s)}renderProgressBar(e,t=!1){if(!this.enabled||!this.shouldStyleConsole()||!se.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),i=Math.round(e.barLength*r/100),n=e.barLength-i,s=ee.green("\u2501".repeat(i)),o=ee.gray("\u2501".repeat(n)),a=`[${s}${o}]`,c=`${r}%`.padStart(4),f=e.message?` ${e.message}`:"",u=this.options.showIcons===!1?"":t||r===100?ee.green("\u2713"):ee.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${ee.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${c}${f}`,h=se.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,se.stdout.write(e.lastRenderedLine),t)se.stdout.write(`
|
|
113
|
-
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||Se()||!se.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(Se()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await Jr(this.config.logDirectory),r=[];for(let i of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(i):i.startsWith(this.name))||!i.endsWith(".log"))continue;let n=Ht(this.config.logDirectory,i);if(e.before)try{if((await Ut(n)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${n}:`,s);continue}r.push(n)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let i of r)try{await Vr(i),console.warn(`Deleted log file: ${i}`)}catch(n){console.error(`Failed to delete log file ${i}:`,n)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}async function fa(e,t={}){let{maxRetries:r=3,retryDelay:i=1000,isRetryable:n=()=>!0,fallback:s}=t,o=Error("Unknown error occurred");for(let a=0;a<=r;a++)try{return await e()}catch(c){if(o=c instanceof Error?c:Error(String(c)),a===r||!n(o))break;if(i>0)await new Promise((f)=>setTimeout(f,i))}if(s!==void 0)return s;throw o instanceof Error?o:Error(`Unknown error: ${String(o)}`)}function ua(e){return e instanceof Ve}function Ru(e){return e instanceof mi}function Nu(e){if(ua(e))return e.code==="FILE_SYSTEM_ERROR"||e.code==="BROWSER_CONFIG_ERROR";return["ENOENT","EACCES","EMFILE","ENFILE","EBUSY","network","timeout","connection"].some((t)=>e.message.toLowerCase().includes(t.toLowerCase()))}class Ci{defaultParsers;constructor(){this.defaultParsers=[{name:"boolean",canParse:(e,t)=>t==="boolean"||["true","false","1","0","yes","no"].includes(e.toLowerCase()),parse:(e)=>{let t=e.toLowerCase();return["true","1","yes"].includes(t)}},{name:"number",canParse:(e,t)=>t==="number"||!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e)),parse:(e)=>{let t=Number(e);if(Number.isNaN(t))throw TypeError(`Cannot parse "${e}" as number`);return t}},{name:"array",canParse:(e,t)=>t==="array"||e.startsWith("[")||e.includes(","),parse:(e)=>{try{let t=JSON.parse(e);if(Array.isArray(t))return t}catch{}return e.split(",").map((t)=>t.trim())}},{name:"json",canParse:(e,t)=>t==="object"||(e.startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]")),parse:(e)=>{try{return JSON.parse(e)}catch(t){throw Error(`Cannot parse "${e}" as JSON: ${t}`)}}}]}async applyEnvironmentVariables(e,t,r={}){let{prefix:i,useCamelCase:n=!0,useBackwardCompatibility:s=!0,customParsers:o={},verbose:a=!1,trackPerformance:c=!0}=r,f=async()=>{if(!e)return{config:t,source:{type:"environment",priority:50,timestamp:new Date}};let u=i||this.generateEnvPrefix(e),l={...t};return this.processObject(l,[],u,{useCamelCase:n,useBackwardCompatibility:s,customParsers:o,verbose:a,configName:e}),{config:l,source:{type:"environment",priority:50,timestamp:new Date}}};if(c)return wr.track("applyEnvironmentVariables",f,{configName:e});return f()}generateEnvPrefix(e){return e.toUpperCase().replace(/-/g,"_")}formatEnvKey(e,t){if(!t)return e.toUpperCase();return e.replace(/([A-Z])/g,"_$1").toUpperCase()}processObject(e,t,r,i){for(let[n,s]of Object.entries(e)){let o=[...t,n],a=o.map((u)=>this.formatEnvKey(u,i.useCamelCase)),c=`${r}_${a.join("_")}`,f=i.useBackwardCompatibility?`${r}_${o.map((u)=>u.toUpperCase()).join("_")}`:null;if(i.verbose);if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.processObject(s,o,r,i);else{let u=Yr.env[c]||(f?Yr.env[f]:void 0);if(u!==void 0){if(i.verbose){let l=Yr.env[c]?c:f}try{e[n]=this.parseEnvironmentValue(u,typeof s,c,i.customParsers,i.configName)}catch(l){if(l instanceof gi)throw l;throw Ot.envVar(c,u,typeof s,i.configName)}}}}}parseEnvironmentValue(e,t,r,i,n){for(let[s,o]of Object.entries(i))try{return o(e)}catch{continue}for(let s of this.defaultParsers)if(s.canParse(e,t))try{return s.parse(e)}catch{throw Ot.envVar(r,e,`${t} (via ${s.name} parser)`,n)}return e}getEnvironmentVariables(e){let t={},r=e.toUpperCase();for(let[i,n]of Object.entries(Yr.env))if(i.startsWith(r)&&n!==void 0)t[i]=n;return t}validateEnvironmentVariable(e,t,r){let i=[];if(!/^[A-Z_][A-Z0-9_]*$/.test(e))i.push(`Environment variable key "${e}" should only contain uppercase letters, numbers, and underscores`);if(r)try{this.parseEnvironmentValue(e,t,r,{})}catch(n){i.push(`Cannot parse value "${t}" as ${r}: ${n}`)}return{isValid:i.length===0,errors:i}}generateEnvVarDocs(e,t,r={}){let{prefix:i,format:n="text"}=r,s=i||this.generateEnvPrefix(e),o=[];switch(this.extractEnvVarInfo(t,[],s,o),n){case"markdown":return this.formatAsMarkdown(o,e);case"json":return JSON.stringify(o,null,2);default:return this.formatAsText(o,e)}}extractEnvVarInfo(e,t,r,i){for(let[n,s]of Object.entries(e)){let o=[...t,n],a=`${r}_${o.map((c)=>this.formatEnvKey(c,!0)).join("_")}`;if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.extractEnvVarInfo(s,o,r,i);else i.push({key:a,type:Array.isArray(s)?"array":typeof s,description:`Configuration for ${o.join(".")}`,example:this.generateExample(s)})}}generateExample(e){if(Array.isArray(e))return JSON.stringify(e);if(typeof e==="object"&&e!==null)return JSON.stringify(e);return String(e)}formatAsText(e,t){let r=`Environment Variables for ${t}:
|
|
114
|
-
|
|
115
|
-
`;for(let i of e)r+=`${i.key}
|
|
116
|
-
`,r+=` Type: ${i.type}
|
|
117
|
-
`,r+=` Description: ${i.description}
|
|
118
|
-
`,r+=` Example: ${i.example}
|
|
119
|
-
|
|
120
|
-
`;return r}formatAsMarkdown(e,t){let r=`# Environment Variables for ${t}
|
|
121
|
-
|
|
122
|
-
`;r+=`| Variable | Type | Description | Example |
|
|
123
|
-
`,r+=`|----------|------|-------------|----------|
|
|
124
|
-
`;for(let i of e)r+=`| \`${i.key}\` | ${i.type} | ${i.description} | \`${i.example}\` |
|
|
125
|
-
`;return r}}function Wu(e,t){let r=pa("process");if(typeof r>"u"||!r.env)return t;let i=r.env[e];return i!==void 0?i:t}function ha(e,t,r={}){return da(e,t,r,new WeakMap)}function da(e,t,r,i){let{arrayMergeMode:n="replace",skipNullish:s=!1,customMerger:o}=r;if(t===null||t===void 0)return s?e:t;if(o){let a=o(e,t);if(a!==void 0)return a}if(Array.isArray(t)||Array.isArray(e))return ma(e,t,n,i);if(!qe(t)||!qe(e))return t;return Mu(e,t,r,i)}function ma(e,t,r,i){if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(e)&&!Array.isArray(t))return t;if(Array.isArray(t)&&Array.isArray(e))switch(r){case"replace":return t;case"concat":return Fu(e,t);case"smart":return Pu(e,t,i);default:return t}return t}function Fu(e,t){let r=[...t];for(let i of e)if(!r.some((n)=>kn(n,i)))r.push(i);return r}function Pu(e,t,r){if(t.length===0)return e;if(e.length===0)return t;if(qe(t[0])&&qe(e[0]))return Du(e,t,r);if(t.every((i)=>typeof i==="string")&&e.every((i)=>typeof i==="string")){let i=[...t];for(let n of e)if(!i.includes(n))i.push(n);return i}return t}function Du(e,t,r){let i=[...t];for(let n of e){if(!qe(n)){i.push(n);continue}let s=["id","name","key","path","type"],o=!1;for(let a of s)if(a in n){if(i.find((c)=>qe(c)&&(a in c)&&c[a]===n[a])){o=!0;break}}if(!o)i.push(n)}return i}function Mu(e,t,r,i){let n=t;if(qe(n)&&i.has(n))return i.get(n);let s={...e};if(qe(n))i.set(n,s);for(let o in n){if(!Object.prototype.hasOwnProperty.call(n,o))continue;let a=n[o],c=s[o];if(r.skipNullish&&(a===null||a===void 0))continue;if(a===null||a===void 0){s[o]=a;continue}if(qe(a)&&qe(c))s[o]=da(c,a,r,i);else if(Array.isArray(a)||Array.isArray(c))s[o]=ma(c,a,r.arrayMergeMode||"smart",i);else s[o]=a}return s}function Zn(e,t,r="replace"){return ha(e,t,{arrayMergeMode:r==="replace"?"replace":"smart",skipNullish:!0})}function kn(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!kn(e[r],t[r]))return!1;return!0}if(qe(e)&&qe(t)){let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let n of r){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(!kn(e[n],t[n]))return!1}return!0}return!1}function qe(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}class bi{extensions=[".ts",".js",".mjs",".cjs",".json",".mts",".cts"];async loadFromPath(e,t,r={}){let{arrayStrategy:i="replace",useCache:n=!0,cacheTtl:s,trackPerformance:o=!0,verbose:a=!1}=r;if(n){let f=er.getWithFileCheck("file",e);if(f){if(a)console.log(`Configuration loaded from cache: ${e}`);return f}}let c=async()=>{if(!Kr(e))return null;try{let f=`?t=${Date.now()}`,u=await import(e+f),l=u.default||u,p="default"in u,h=Object.keys(u).length>0;if(!p&&!h)throw new yr(e,Error("Configuration file is empty and exports nothing"),"unknown");if(typeof l!=="object"||l===null||Array.isArray(l))throw new yr(e,Error("Configuration must export a valid object"),"unknown");let w={config:Zn(t,l,i),source:{type:"file",path:e,priority:100,timestamp:new Date}};if(n)er.setWithFileCheck("file",w,e,s);return w}catch(f){throw f instanceof Error?Ot.configLoad(e,f):Ot.configLoad(e,Error(String(f)))}};if(o)return wr.track("loadFromPath",c,{path:e});return c()}async tryLoadFromPaths(e,t,r={}){for(let i of e)try{let n=await this.loadFromPath(i,t,r);if(n)return n}catch(n){if(n instanceof Error&&n.name==="ConfigLoadError")throw n;if(r.verbose)console.warn(`Failed to load config from ${i}:`,n)}return null}generateConfigPaths(e,t,r){let i=this.generateNamePatterns(e,r),n=[];for(let s of i)for(let o of this.extensions)n.push(mn(t,`${s}${o}`));return n}generateNamePatterns(e,t){let r=[];if(r.push("config",".config"),e)r.push(e,`.${e}.config`,`${e}.config`,`.${e}`);if(t){if(r.push(t,`.${t}.config`,`${t}.config`,`.${t}`),e)r.push(`${e}.${t}.config`,`.${e}.${t}.config`)}return r.filter(Boolean)}checkFileAccess(e){return fa(async()=>{return Kr(e)},{maxRetries:2,retryDelay:100,fallback:!1})}async discoverConfigFiles(e,t,r){let i=[];if(!Kr(e))return i;if(t||r){let n=this.generateNamePatterns(t||"",r);for(let s of n)for(let o of this.extensions){let a=mn(e,`${s}${o}`);if(await this.checkFileAccess(a))i.push(a)}}else try{let{readdirSync:n}=await import("fs"),s=n(e);for(let o of s)if(this.looksLikeConfigFile(o)){let a=mn(e,o);if(await this.checkFileAccess(a))i.push(a)}}catch{return[]}return i}looksLikeConfigFile(e){return[/\.config\.(ts|js|mjs|cjs|json|mts|cts)$/,/^\..*\.(ts|js|mjs|cjs|json|mts|cts)$/,/config\.(ts|js|mjs|cjs|json|mts|cts)$/].some((t)=>t.test(e))}async validateConfigFile(e){let t=[];try{if(!Kr(e))return t.push("Configuration file does not exist"),t;let r=await import(e),i=r.default||r;if(i===void 0)t.push("Configuration file must export a default value or named exports");else if(typeof i!=="object"||i===null)t.push("Configuration must be an object");else if(Array.isArray(i))t.push("Configuration cannot be an array at the root level");if(e.endsWith(".json"))try{let{readFileSync:n}=await import("fs"),s=n(e,"utf8");JSON.parse(s)}catch(n){t.push(`Invalid JSON syntax: ${n}`)}}catch(r){t.push(`Failed to load configuration file: ${r}`)}return t}async getFileModificationTime(e){try{let{statSync:t}=await import("fs");return t(e).mtime}catch{return null}}async preloadConfigurations(e,t={}){let r=new Map;return await Promise.allSettled(e.map(async(i)=>{try{let n=await this.loadFromPath(i,{},t);if(n)r.set(i,n.config)}catch(n){if(t.verbose)console.warn(`Failed to preload ${i}:`,n)}})),r}}class Jn{async validateConfiguration(e,t,r={}){let{stopOnFirstError:i=!1,validateRequired:n=!0,validateTypes:s=!0,customRules:o=[],trackPerformance:a=!0,verbose:c=!1}=r,f=async()=>{let u=[],l=[],p={stopOnFirstError:i,validateRequired:n,validateTypes:s,customRules:o,trackPerformance:a,verbose:c};try{if(typeof t==="string")return await this.validateWithSchemaFile(e,t,p);else if(Array.isArray(t))return this.validateWithRules(e,[...t,...o],p);else return this.validateWithJSONSchema(e,t,p)}catch(h){return u.push({path:"",message:`Validation failed: ${h}`,rule:"system"}),{isValid:!1,errors:u,warnings:l}}};if(a)return await wr.track("validateConfiguration",f);return f()}async validateWithSchemaFile(e,t,r){try{if(!qf(t))throw new $r(t,[{path:"",message:"Schema file does not exist"}]);let i=await import(t),n=i.default||i;if(Array.isArray(n))return this.validateWithRules(e,n,r);else return this.validateWithJSONSchema(e,n,r)}catch(i){throw new $r(t,[{path:"",message:`Failed to load schema: ${i}`}])}}validateWithJSONSchema(e,t,r){let i=[],n=[];return this.validateObjectAgainstSchema(e,t,"",i,n,r),{isValid:i.length===0,errors:i,warnings:n}}validateObjectAgainstSchema(e,t,r,i,n,s){if(s.validateTypes&&t.type){let o=Array.isArray(e)?"array":typeof e,a=Array.isArray(t.type)?t.type:[t.type];if(!a.includes(o)){if(i.push({path:r,message:`Expected type ${a.join(" or ")}, got ${o}`,expected:a.join(" or "),actual:o,rule:"type"}),s.stopOnFirstError)return}}if(t.enum&&!t.enum.includes(e)){if(i.push({path:r,message:`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"}),s.stopOnFirstError)return}if(typeof e==="string"){if(t.minLength!==void 0&&e.length<t.minLength)i.push({path:r,message:`String length must be at least ${t.minLength}`,expected:`>= ${t.minLength}`,actual:e.length,rule:"minLength"});if(t.maxLength!==void 0&&e.length>t.maxLength)i.push({path:r,message:`String length must not exceed ${t.maxLength}`,expected:`<= ${t.maxLength}`,actual:e.length,rule:"maxLength"});if(t.pattern){if(!new RegExp(t.pattern).test(e))i.push({path:r,message:`String does not match pattern ${t.pattern}`,expected:t.pattern,actual:e,rule:"pattern"})}}if(typeof e==="number"){if(t.minimum!==void 0&&e<t.minimum)i.push({path:r,message:`Value must be at least ${t.minimum}`,expected:`>= ${t.minimum}`,actual:e,rule:"minimum"});if(t.maximum!==void 0&&e>t.maximum)i.push({path:r,message:`Value must not exceed ${t.maximum}`,expected:`<= ${t.maximum}`,actual:e,rule:"maximum"})}if(Array.isArray(e)&&t.items)for(let o=0;o<e.length;o++){let a=r?`${r}[${o}]`:`[${o}]`;if(this.validateObjectAgainstSchema(e[o],t.items,a,i,n,s),s.stopOnFirstError&&i.length>0)return}if(e&&typeof e==="object"&&!Array.isArray(e)){let o=e;if(s.validateRequired&&t.required){for(let a of t.required)if(!(a in o)){if(i.push({path:r?`${r}.${a}`:a,message:`Missing required property '${a}'`,expected:"required",rule:"required"}),s.stopOnFirstError)return}}if(t.properties){for(let[a,c]of Object.entries(t.properties))if(a in o){let f=r?`${r}.${a}`:a;if(this.validateObjectAgainstSchema(o[a],c,f,i,n,s),s.stopOnFirstError&&i.length>0)return}}if(t.additionalProperties===!1){let a=new Set(Object.keys(t.properties||{}));for(let c of Object.keys(o))if(!a.has(c))n.push({path:r?`${r}.${c}`:c,message:`Additional property '${c}' is not allowed`,rule:"additionalProperties"})}}}validateWithRules(e,t,r){let i=[],n=[];for(let s of t)try{let o=this.getValueByPath(e,s.path),a=this.validateWithRule(o,s,s.path);if(i.push(...a),r.stopOnFirstError&&i.length>0)break}catch(o){i.push({path:s.path,message:`Rule validation failed: ${o}`,rule:"system"})}return{isValid:i.length===0,errors:i,warnings:n}}validateWithRule(e,t,r){let i=[];if(t.required&&(e===void 0||e===null))return i.push({path:r,message:t.message||`Property '${r}' is required`,expected:"required",rule:"required"}),i;if(e===void 0||e===null)return i;if(t.type){let n=Array.isArray(e)?"array":typeof e;if(n!==t.type)i.push({path:r,message:t.message||`Expected type ${t.type}, got ${n}`,expected:t.type,actual:n,rule:"type"})}if(t.min!==void 0){let n=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(n<t.min)i.push({path:r,message:t.message||`Value must be at least ${t.min}`,expected:`>= ${t.min}`,actual:n,rule:"min"})}if(t.max!==void 0){let n=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(n>t.max)i.push({path:r,message:t.message||`Value must not exceed ${t.max}`,expected:`<= ${t.max}`,actual:n,rule:"max"})}if(t.pattern&&typeof e==="string"){if(!t.pattern.test(e))i.push({path:r,message:t.message||`Value does not match pattern ${t.pattern}`,expected:t.pattern.toString(),actual:e,rule:"pattern"})}if(t.enum&&!t.enum.includes(e))i.push({path:r,message:t.message||`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"});if(t.validator){let n=t.validator(e);if(n)i.push({path:r,message:t.message||n,rule:"custom"})}return i}getValueByPath(e,t){if(!t)return e;let r=t.split("."),i=e;for(let n of r)if(i&&typeof i==="object"&&n in i)i=i[n];else return;return i}generateRulesFromInterface(e){let t=[],r=e.matchAll(/(\w+)(\?)?:\s*(\w+)/g);for(let i of r){let[,n,s,o]=i;t.push({path:n,required:!s,type:this.mapTypeScriptType(o)})}return t}mapTypeScriptType(e){switch(e.toLowerCase()){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"array":return"array";case"object":return"object";default:return"object"}}static createCommonRules(){return{server:[{path:"port",required:!0,type:"number",min:1,max:65535},{path:"host",required:!0,type:"string",min:1},{path:"ssl",type:"boolean"}],database:[{path:"url",required:!0,type:"string",min:1},{path:"pool",type:"number",min:1,max:100},{path:"timeout",type:"number",min:0}],api:[{path:"baseUrl",required:!0,type:"string",pattern:ba},{path:"timeout",type:"number",min:0},{path:"retries",type:"number",min:0,max:10}]}}}class Vn{fileLoader=new bi;envProcessor=new Ci;validator=new Jn;async loadConfig(e){let t=Date.now(),{cache:r,performance:i,schema:n,validate:s,...o}=e;try{if(r?.enabled){let c=this.checkCache(o.name||"",o);if(c)return c}let a;try{a=await this.loadConfigurationStrategies(o,!0,r)}catch(c){let f=o.__strictErrorHandling;if(c instanceof Error&&c.name==="ConfigNotFoundError"){if(f)throw c;a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`No configuration file found for "${o.name||"config"}", using defaults with environment variables`]}}else if(c instanceof Error&&c.name==="ConfigLoadError"){let u=c.message.includes("EACCES")||c.message.includes("EPERM")||c.message.includes("permission denied"),l=!u&&(c.message.includes("syntax")||c.message.includes("Expected")||c.message.includes("Unexpected")||c.message.includes("BuildMessage")||c.message.includes("errors building")),p=c.message.includes("Configuration must export a valid object")||c.message.includes("Configuration file is empty and exports nothing");if(f&&(p||u))throw c;if(l&&(!f||!p))a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:["Configuration file has syntax errors, using defaults with environment variables"]};else if(!f)a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading error, using defaults: ${c.message}`]};else throw c}else a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading failed, using defaults: ${c instanceof Error?c.message:String(c)}`]}}if(n||s)await this.validateConfiguration(a.config,n,s,o.name);if(r?.enabled&&a)this.cacheResult(o.name||"",a,r,o);if(i?.enabled){let c={operation:"loadConfig",duration:Date.now()-t,configName:o.name,timestamp:new Date};if(i.onMetrics)i.onMetrics(c);if(i.slowThreshold&&c.duration>i.slowThreshold)Qe.warn(`Slow configuration loading detected: ${c.duration}ms for ${o.name}`);a.metrics=c}return a}catch(a){let c=Date.now()-t;throw Qe.error(`Configuration loading failed after ${c}ms:`,[a instanceof Error?a:Error(String(a))]),a}}async loadConfigurationStrategies(e,t=!1,r){let{name:i="",alias:n,cwd:s,configDir:o,defaultConfig:a,checkEnv:c=!0,arrayStrategy:f="replace",verbose:u=!1}=e,l=s||Rt.cwd(),p=[],h=await this.loadLocalConfiguration(i,n,l,o,a,f,u,c,r);if(h)return p.push(...this.getLocalSearchPaths(i,n,l,o)),this.finalizeResult(h,p,c,i,u);let w=await this.loadHomeConfiguration(i,n,a,f,u,c);if(w)return p.push(...this.getHomeSearchPaths(i,n)),this.finalizeResult(w,p,c,i,u);let A=await this.loadPackageJsonConfiguration(i,n,l,a,f,u,c);if(A)return p.push(Ze(l,"package.json")),this.finalizeResult(A,p,c,i,u);if(p.push(...this.getAllSearchPaths(i,n,l,o)),t)throw Ot.configNotFound(i,p,n);return{...await this.applyEnvironmentVariables(i,a,c,u),warnings:[`No configuration file found for "${i}"${n?` or alias "${n}"`:""}, using defaults with environment variables`]}}async loadLocalConfiguration(e,t,r,i,n,s,o,a,c){let f=a?gr(e,n,o):n,u=this.getLocalDirectories(r,i);for(let l of u){if(o)Qe.info(`Searching for configuration in: ${l}`);let p=this.fileLoader.generateConfigPaths(e,l,t),h=await this.fileLoader.tryLoadFromPaths(p,f,{arrayStrategy:s,verbose:o,cacheTtl:c?.ttl,useCache:!c?.ttl||c.ttl>100});if(h){if(o)Qe.success(`Configuration loaded from: ${h.source.path}`);return h}}return null}async loadHomeConfiguration(e,t,r,i,n,s){if(!e)return null;let o=s?gr(e,r,n):r,a=[Ze(Vt(),".config",e),Ze(Vt(),".config"),Vt()];for(let c of a){if(n)Qe.info(`Checking home directory: ${c}`);let f=this.fileLoader.generateConfigPaths(e,c,t),u=await this.fileLoader.tryLoadFromPaths(f,o,{arrayStrategy:i,verbose:n});if(u){if(n)Qe.success(`Configuration loaded from home directory: ${u.source.path}`);return u}}return null}async loadPackageJsonConfiguration(e,t,r,i,n,s,o){let a=o?gr(e,i,s):i;try{let c=Ze(r,"package.json");if(!En(c))return null;let f=await import(c),u=f[e],l=e;if(!u&&t)u=f[t],l=t;if(u&&typeof u==="object"&&!Array.isArray(u)){if(s)Qe.success(`Configuration loaded from package.json: ${l}`);return{config:Zn(a,u,n),source:{type:"package.json",path:c,priority:30,timestamp:new Date}}}}catch(c){if(s)Qe.warn("Failed to load package.json:",[c instanceof Error?c:Error(String(c))])}return null}async applyEnvironmentVariables(e,t,r,i){if(!r||!e||typeof t!=="object"||t===null||Array.isArray(t))return{config:t,source:{type:"default",priority:10,timestamp:new Date}};return{config:gr(e,t,i),source:{type:"environment",priority:20,timestamp:new Date}}}async finalizeResult(e,t,r,i,n){return{config:e.config,source:e.source,path:e.source.path}}async validateConfiguration(e,t,r,i){let n=[];if(r){let s=r(e);if(s)n.push(...s)}if(t){let s=await this.validator.validateConfiguration(e,t);if(!s.isValid)n.push(...s.errors.map((o)=>o.path?`${o.path}: ${o.message}`:o.message))}if(n.length>0)throw Ot.configValidation(i||"unknown",n,i)}checkCache(e,t){let r=this.generateCacheKey(e,t);return er.get(r)||null}cacheResult(e,t,r,i){let n=this.generateCacheKey(e,i);er.set(n,t,void 0,r.ttl)}generateCacheKey(e,t){let r=[e];if(t.alias)r.push(`alias:${t.alias}`);if(t.cwd)r.push(`cwd:${t.cwd}`);if(t.configDir)r.push(`configDir:${t.configDir}`);if("checkEnv"in t)r.push(`checkEnv:${t.checkEnv}`);return r.join("|")}getLocalDirectories(e,t){return Array.from(new Set([e,Ze(e,"config"),Ze(e,".config"),t?Ze(e,t):void 0].filter(Boolean)))}getAllSearchPaths(e,t,r,i){let n=[];return n.push(...this.getLocalSearchPaths(e,t,r,i)),n.push(...this.getHomeSearchPaths(e,t)),n.push(Ze(r,"package.json")),n}getLocalSearchPaths(e,t,r,i){let n=this.getLocalDirectories(r,i),s=[];for(let o of n)s.push(...this.fileLoader.generateConfigPaths(e,o,t));return s}getHomeSearchPaths(e,t){if(!e)return[];let r=[Ze(Vt(),".config",e),Ze(Vt(),".config"),Vt()],i=[];for(let n of r)i.push(...this.fileLoader.generateConfigPaths(e,n,t));return i}async loadConfigWithResult(e){return this.loadConfig(e)}}function Vo(e){let t=!(e.message.includes("EACCES")||e.message.includes("EPERM")||e.message.includes("permission denied"))&&(e.message.includes("syntax")||e.message.includes("Expected")||e.message.includes("Unexpected")||e.message.includes("BuildMessage")),r=e.message.includes("Configuration must export a valid object")||e.message.includes("Configuration file is empty and exports nothing");return t||r}async function Iu(e){return gt.loadConfig({...e,__strictErrorHandling:!0})}async function ga(e){let t="defaultConfig"in e&&e.defaultConfig!==void 0?e.defaultConfig:{},r="cache"in e||"performance"in e||"schema"in e||"validate"in e;try{let i;if(r)i=await gt.loadConfig(e);else i=await gt.loadConfig({...e,defaultConfig:t,cache:{enabled:!0},performance:{enabled:!1}});return i?.config??t}catch(i){let n=i instanceof Error?i.name:"UnknownError",s=i instanceof Error?i.message:String(i);if(!(n==="ConfigNotFoundError"||n==="ConfigLoadError"||n==="ConfigValidationError"||s.includes("config"))&&e.verbose)Qe.warn("Unexpected error loading config, using defaults:",[i instanceof Error?i:Error(String(i))]);let o=r?{...e,defaultConfig:t}:{...e,defaultConfig:t,cache:{enabled:!0},performance:{enabled:!1}};if("checkEnv"in e?e.checkEnv!==!1:!0)return(await gt.applyEnvironmentVariables(o.name||"",t,!0,o.verbose||!1))?.config??t;return t}}async function Bu(e={defaultConfig:{}}){if(typeof e==="string"){let{cwd:t}=await import("process");try{return(await gt.loadConfig({name:e,cwd:t(),generatedDir:"./generated",configDir:"./config",defaultConfig:{},checkEnv:!0,arrayStrategy:"replace"})).config}catch(r){if(r instanceof Error&&(r.name==="ConfigNotFoundError"||r.name==="ConfigLoadError"&&Vo(r)))return(await gt.applyEnvironmentVariables(e,{},!0,!1)).config;throw r}}try{return(await gt.loadConfig({...e,cwd:e.cwd||Rt.cwd(),cache:{enabled:!0},performance:{enabled:!1}})).config}catch(t){if(t instanceof Error&&(t.name==="ConfigNotFoundError"||t.name==="ConfigLoadError"&&Vo(t)))return(await gt.applyEnvironmentVariables(e.name||"",e.defaultConfig||{},e.checkEnv!==!1,e.verbose||!1)).config;throw t}}async function Lu(e,t,r="replace"){let i=new bi;try{let n=await i.loadFromPath(e,t,{arrayStrategy:r,useCache:!1,trackPerformance:!1});return n?n.config:null}catch{return null}}function gr(e,t,r=!1){let i=new Ci,n=e.toUpperCase().replace(/[^A-Z0-9]/g,"_");function s(o,a=[]){let c={...o};for(let[f,u]of Object.entries(o)){let l=[...a,f],p=[`${n}_${l.join("_").toUpperCase()}`,`${n}_${l.map((A)=>A.toUpperCase()).join("")}`,`${n}_${l.map((A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase()).join("")}`],h,w;for(let A of p)if(h=Rt.env[A],h!==void 0){w=A;break}if(h!==void 0&&w)if(typeof u==="boolean")c[f]=["true","1","yes"].includes(h.toLowerCase());else if(typeof u==="number"){let A=Number(h);if(!Number.isNaN(A))c[f]=A}else if(Array.isArray(u))try{c[f]=JSON.parse(h)}catch{c[f]=h.split(",").map((A)=>A.trim())}else c[f]=h;else if(u&&typeof u==="object"&&!Array.isArray(u))c[f]=s(u,l)}return c}return s(t)}function ju(e){let t=Ze(Rt.cwd(),e.configDir),r=Ze(Rt.cwd(),e.generatedDir),i=Ze(r,"config-types.ts");if(!En(bo(i)))kf(bo(i),{recursive:!0,mode:511});let n=En(t)?Sf(t).map((o)=>o.replace(/\.(ts|js|mjs|cjs|mts|cts|json)$/,"")).sort():[],s=`// Generated by bunfig v${gh}
|
|
126
|
-
export type ConfigNames = ${n.length?`'${n.join("' | '")}'`:"string"}
|
|
127
|
-
`;Tf(i,s,{mode:438})}function _u(e){let t=null,r=null,i=()=>{if(!r)r=ga(e).then((s)=>{return t=s,s},(s)=>{let o="defaultConfig"in e?e.defaultConfig:{};if(t=o,"verbose"in e&&e.verbose)Qe.warn("Config loading failed, using defaults:",[s instanceof Error?s:Error(String(s))]);return o});return r},n="defaultConfig"in e?e.defaultConfig:{};return t=n,i(),new Proxy({},{get(s,o){if(t)return t[o];let a=n[o];return i(),a},has(s,o){return o in(t||n)},ownKeys(){return Object.keys(t||n)},getOwnPropertyDescriptor(s,o){return Object.getOwnPropertyDescriptor(t||n,o)},set(s,o,a){if(!t)t={...n};return t[o]=a,!0}})}function Zu(e){let t=Mo(Qf.cwd(),e?.configDir||"./config");function r(){if(!zf(t))return[];let n=new Set([".ts",".js",".mjs",".cjs",".mts",".cts",".json"]),s=[".ts",".mts",".cts",".js",".mjs",".cjs",".json"],o=Xf(t).filter((c)=>n.has(gn(c))).map((c)=>({base:c.replace(/\.(?:ts|js|mjs|cjs|mts|cts|json)$/i,""),file:c})),a=new Map;for(let{base:c,file:f}of o){let u=gn(f).toLowerCase(),l=a.get(c);if(!l){a.set(c,f);continue}let p=gn(l).toLowerCase();if(s.indexOf(u)<s.indexOf(p))a.set(c,f)}return Array.from(a.entries()).map(([c,f])=>({base:c,file:f})).sort((c,f)=>c.base.localeCompare(f.base))}function i(){let n=r(),s=n.map((c)=>c.base),o=s.length?s.map((c)=>`'${c}'`).join(" | "):"string",a=n.length?`{
|
|
128
|
-
${n.map((c)=>{let f=Mo(t,c.file).replace(/\\/g,"/");return` '${c.base}': typeof import('${f}').default`}).join(`,
|
|
129
|
-
`)}
|
|
130
|
-
}`:"Record<string, any>";return`export type ConfigNames = ${o}
|
|
131
|
-
export type ConfigByName = ${a}
|
|
132
|
-
export type Config<N extends ConfigNames> = N extends keyof ConfigByName ? ConfigByName[N] : unknown
|
|
133
|
-
export type ConfigOf = Config
|
|
134
|
-
`}return{name:"bunfig-plugin",setup(n){n.onResolve({filter:/^virtual:bunfig-types$/},(s)=>{return{path:s.path,namespace:"bunfig-virtual"}}),n.onLoad({filter:/^virtual:bunfig-types$/,namespace:"bunfig-virtual"},()=>{return{contents:i(),loader:"ts"}})}}}function yh(e,t={}){let r=li.cwd();while(r.includes("storage"))r=Io(r,"..");let i=Io(r,e||"");if(t?.relative)return tu(li.cwd(),i);return i}function Re(){if(mt.env.NODE_ENV==="test"||mt.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function wh(){if(mt.env.NODE_ENV==="test"||mt.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof mt<"u"){let e=mt.type;if(e==="renderer"||e==="worker")return!1;return!!(mt.versions&&(mt.versions.node||mt.versions.bun))}return!1}class Ea{async format(e){let t=await wh(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:Qt.pid,hostname:t(),environment:Qt.env.NODE_ENV||"development",platform:Qt.platform,version:Qt.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:Qt.env.NODE_ENV||Qt.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class Ai{name;fileLocks=new Map;currentKeyId=null;keys=new Map;fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(e,t={}){this.name=e,this.config={...pi},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new Ea,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??oe.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},i=t.timestamp!==void 0;if(i)delete r.timestamp;if(this.config={...this.config,...r,timestamp:i||this.config.timestamp,level:this.options.level??"info"},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let n=this.generateKeyId(),s=this.generateKey();this.currentKeyId=n,this.keys.set(n,s),this.encryptionKeys.set(n,{key:s,createdAt:new Date}),this.setupKeyRotation()}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;let t={debug:0,info:1,success:2,warning:3,error:4},r=this.fingersCrossedConfig.activationLevel??"error";return t[e]>=t[r]}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...xn,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...xn};return{...xn,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:pi.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,showIcons:!0,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,i])=>i!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}shouldWriteToFile(){return!Re()&&this.config.writeToFile===!0}async writeToFile(e){let t=(async()=>{let i,n=0,s=3,o=1000;while(n<s)try{try{try{await ou(this.config.logDirectory,_o.F_OK|_o.W_OK)}catch(c){if(c instanceof Error&&"code"in c)if(c.code==="ENOENT")await au(this.config.logDirectory,{recursive:!0,mode:493});else if(c.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw c;else throw c}}catch(c){throw console.error("Debug: [writeToFile] Failed to create log directory:",c),c}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:ft.from(e);try{if(!Gr(this.currentLogFile))await $n(this.currentLogFile,"",{mode:420});if(i=jo(this.currentLogFile,"a",420),su(i,a,{flag:"a"}),Lo(i),i!==void 0)yn(i),i=void 0;if((await zt(this.currentLogFile)).size===0){if(await $n(this.currentLogFile,a,{flag:"w",mode:420}),(await zt(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(c){let f=c;if(f.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(f.code)){if(n<s-1){let u=typeof f.message==="string"?f.message:"Unknown error";console.error(`Network error during write attempt ${n+1}/${s}:`,u);let l=o*2**n;await new Promise((p)=>setTimeout(p,l)),n++;continue}}if(f?.code&&["ENOSPC","EDQUOT"].includes(f.code))throw Error(`Disk quota exceeded or no space left on device: ${f.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",f),f}finally{if(i!==void 0)try{yn(i)}catch(c){console.error("Debug: [writeToFile] Error closing file descriptor:",c)}}}catch(a){if(n===s-1){let f=a,u=typeof f.message==="string"?f.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}n++;let c=o*2**(n-1);await new Promise((f)=>setTimeout(f,c))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(i){throw console.error("Debug: [writeToFile] Error in operation:",i),i}finally{this.pendingOperations.splice(r,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 Xt(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 Xt(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Xt(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(Re())return;if(!this.shouldWriteToFile())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((i)=>{console.error("Error rotating keys:",i)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let i=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),n=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,n);if(i.length>s)for(let[o]of i.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return pn(16).toString("hex")}generateKey(){return pn(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=pn(16),i=ru("aes-256-gcm",t,r),n=ft.isBuffer(e)?e:ft.from(e,"utf8"),s=i.update(n),o=i.final(),a=s.length+o.length,c=i.getAuthTag(),f=ft.allocUnsafe(16+a+16);return r.copy(f,0),s.copy(f,16),o.copy(f,16+s.length),c.copy(f,16+a),{encrypted:f,iv:r}}async compressData(e){return new Promise((t,r)=>{let i=Jo(),n=[];i.on("data",(s)=>n.push(s)),i.on("end",()=>t(ft.from(ft.concat(n)))),i.on("error",r),i.write(e),i.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(Re())return;if(!this.shouldWriteToFile())return;let e=await zt(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,i=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let n=await Ur(this.config.logDirectory),s=n.filter((c)=>c.startsWith(this.name)&&/\.log\.\d+$/.test(c)).sort((c,f)=>{let u=Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await zt(r).catch(()=>null))try{if(await Zo(r,a),t.compress)try{let c=`${a}.gz`;await this.compressLogFile(a,c),await Hr(a)}catch(c){console.error("Error compressing rotated file:",c)}if(s.length===0&&!n.some((c)=>c.endsWith(".log.1")))try{let c=`${r}.1`;await $n(c,"")}catch(c){console.error("Error creating backup file:",c)}}catch(c){console.error(`Error during rotation: ${c instanceof Error?c.message:String(c)}`)}}else{let n=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${n}.log`);if(await zt(r).catch(()=>null))await Zo(r,s)}if(this.currentLogFile=i,t.maxFiles){let n=(await Ur(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of n.slice(t.maxFiles))await Hr(Xt(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=Bo(e),i=nu(t),n=Jo();await fu(r,n,i)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let i=await this.formatter.format(r);if(this.shouldWriteToFile())await this.writeToFile(i);console.log(i)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated){if(this.shouldWriteToFile())await this.writeToFile(t);console.log(t)}}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),Gr(this.currentLogFile))try{let e=jo(this.currentLogFile,"r+");Lo(e),yn(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!Re()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await Ur(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await Hr(Xt(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.shouldStyleConsole()?te.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}shouldStyleConsole(){if(!this.fancy||Re())return!1;let e=typeof oe.env.NO_COLOR<"u",t=oe.env.FORCE_COLOR==="0";if(e||t)return!1;return!!(typeof oe.stderr<"u"&&oe.stderr.isTTY||typeof oe.stdout<"u"&&oe.stdout.isTTY)}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:i="",message:n,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(i)h.push(i.replace(/[[\]]/g,""));return h.push(n),h.join(" ")}let c=oe.stdout.columns||120,f="";if(s==="warning"||s==="error")f=`${r} ${n}`;else if(s==="info"||s==="success")f=`${r} ${i} ${n}`;else f=`${r} ${i} ${te.cyan(n)}`;if(!o)return f.trim();let u=a(f).trim().length,l=a(t).length,p=Math.max(1,c-2-u-l);return`${f.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,i=0,n=e.replace(r,(s,o)=>{if(o==="%")return"%";if(i>=t.length)return s;let a=t[i++];switch(o){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 s}});if(i<t.length)n+=` ${t.slice(i).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return n}formatMarkdown(e){if(!e)return e;let t=e;return t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(r,i,n)=>{let s=te.underline(te.blue(i)),o=this.toAbsoluteFilePath(n);if(o&&this.shouldStyleConsole()&&this.supportsHyperlinks()){let a=`file://${encodeURI(o)}`,c="\x1B]8;;",f="\x1B\\";return`\x1B]8;;${a}\x1B\\${s}\x1B]8;;\x1B\\`}if(this.shouldStyleConsole()&&this.supportsHyperlinks())return`\x1B]8;;${n}\x1B\\${s}\x1B]8;;\x1B\\`;return s}),t=t.replace(/`([^`]+)`/g,(r,i)=>te.bgGray(i)),t=t.replace(/\*\*([^*]+)\*\*/g,(r,i)=>te.bold(i)),t=t.replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,(r,i)=>te.italic(i)),t=t.replace(/(?<!_)_([^_]+)_(?!_)/g,(r,i)=>te.italic(i)),t=t.replace(/~([^~]+)~/g,(r,i)=>te.strikethrough(i)),t}supportsHyperlinks(){if(Re())return!1;let e=oe.env;if(!e)return!1;if(e.TERM_PROGRAM==="iTerm.app"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="WezTerm")return!0;if(e.WT_SESSION)return!0;if(e.TERM==="xterm-kitty")return!0;let t=e.VTE_VERSION?Number.parseInt(e.VTE_VERSION,10):0;if(!Number.isNaN(t)&&t>=5000)return!0;return!1}toAbsoluteFilePath(e){try{let t=e;if(t.startsWith("file://"))t=t.replace(/^file:\/\//,"");if(t.startsWith("~")){let r=oe.env.HOME||"";if(r)t=t.replace(/^~(?=$|\/)/,r)}if(lu(t)||t.startsWith("./")||t.startsWith("../"))t=cu(t);else return null;return Gr(t)?t:null}catch{return null}}buildOutputTexts(e){let t=this.shouldStyleConsole()?this.formatMarkdown(e):e,r=e.replace(this.ANSI_PATTERN,"");return{consoleText:t,fileText:r}}async log(e,t,...r){if(!this.shouldLog(e))return;let i=new Date,n=this.formatConsoleTimestamp(i),s=this.formatFileTimestamp(i),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);let{consoleText:c,fileText:f}=this.buildOutputTexts(o);if(this.shouldStyleConsole()){let l=this.options.showIcons===!1?"":xh[e],p=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",h;switch(e){case"debug":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:te.gray(c),level:e}),console.error(h);break;case"info":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.warn(h);break;case"success":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:te.green(c),level:e}),console.error(h);break;case"warning":h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.warn(h);break;case"error":if(h=this.formatConsoleMessage({timestamp:n,icon:l,tag:p,message:c,level:e}),console.error(h),a){let w=a.split(`
|
|
135
|
-
`);for(let A of w)if(A.trim()&&!A.includes(o))console.error(this.formatConsoleMessage({timestamp:n,message:te.gray(` ${A}`),level:e,showTimestamp:!1}))}break}}else if(!Re()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}let u=`${s} ${this.environment}.${e.toUpperCase()}: ${f}
|
|
136
|
-
`;if(a)u+=`${a}
|
|
137
|
-
`;if(u=u.replace(this.ANSI_PATTERN,""),this.shouldWriteToFile())await this.writeToFile(u)}progress(e,t=""){let r={update:(n,s)=>{},finish:(n)=>{},interrupt:(n,s)=>{}};if(!this.enabled)return r;let i=30;if(this.activeProgressBar={total:Math.max(1,e||1),current:0,message:t||"",barLength:i,lastRenderedLine:""},this.shouldStyleConsole()&&!Re()&&oe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar);return{update:(n,s)=>{if(!this.enabled||!this.activeProgressBar)return;if(this.activeProgressBar.current=Math.min(Math.max(0,n),this.activeProgressBar.total),s!==void 0)this.activeProgressBar.message=s;if(this.shouldStyleConsole()&&!Re()&&oe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)},finish:(n)=>{if(!this.activeProgressBar)return;this.finishProgressBar(this.activeProgressBar,n)},interrupt:(n,s="info")=>{if(!Re()&&oe.stdout.isTTY)oe.stdout.write(`
|
|
138
|
-
`);if(this[s==="warning"?"warn":s](n),this.activeProgressBar&&this.shouldStyleConsole()&&!Re()&&oe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)}}}time(e){let t=performance.now();if(this.shouldStyleConsole()){let r=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",i=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:i,icon:this.options.showIcons===!1?"":te.blue("\u25D0"),tag:r,message:`${te.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let i=performance.now(),n=Math.round(i-t),s=`${e} completed in ${n}ms`,o=new Date,a=this.formatConsoleTimestamp(o),c=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)c+=` ${JSON.stringify(r)}`;if(c+=`
|
|
139
|
-
`,c=c.replace(this.ANSI_PATTERN,""),this.shouldStyleConsole()){let f=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:this.options.showIcons===!1?"":te.green("\u2713"),tag:f,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!Re())console.error(c.trim());if(this.shouldWriteToFile())await this.writeToFile(c)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new Ai(t,{...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(r),r}createReadStream(){if(Re())throw Error("createReadStream is not supported in browser environments");if(!Gr(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return Bo(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let i=ft.isBuffer(e)?e:ft.from(e,"base64"),n=i.subarray(0,16),s=i.subarray(i.length-16),o=i.subarray(16,i.length-16),a=iu("aes-256-gcm",r,n);a.setAuthTag(s);let c=a.update(o),f=a.final(),u=c.length+f.length,l=ft.allocUnsafe(u);return c.copy(l,0),f.copy(l,c.length),l.toString("utf8")}catch(i){throw Error(`Decryption failed: ${i instanceof Error?i.message:String(i)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Re()}isServerMode(){return!Re()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),i=this.formatFileTimestamp(t),{consoleText:n,fileText:s}=this.buildOutputTexts(e);if(this.shouldStyleConsole()){let a=n.split(`
|
|
140
|
-
`),c=Math.max(...a.map((p)=>p.length))+2,f=`\u250C${"\u2500".repeat(c)}\u2510`,u=`\u2514${"\u2500".repeat(c)}\u2518`,l=a.map((p)=>{return this.formatConsoleMessage({timestamp:r,message:te.cyan(p),showTimestamp:!1})});console.error(this.formatConsoleMessage({timestamp:r,message:te.cyan(f),showTimestamp:!1})),l.forEach((p)=>console.error(p)),console.error(this.formatConsoleMessage({timestamp:r,message:te.cyan(u),showTimestamp:!1}))}else if(!Re())console.error(`${i} ${this.environment}.INFO: [BOX] ${s}`);let o=`${i} ${this.environment}.INFO: [BOX] ${s}
|
|
141
|
-
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(o)}async prompt(e){if(Re())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${te.cyan("?")} ${e} (y/n) `);let r=(i)=>{let n=i.toString().trim().toLowerCase();oe.stdin.removeListener("data",r);try{if(typeof oe.stdin.setRawMode==="function")oe.stdin.setRawMode(!1)}catch{}oe.stdin.pause(),console.error(""),t(n==="y"||n==="yes")};try{if(typeof oe.stdin.setRawMode==="function")oe.stdin.setRawMode(!0)}catch{}oe.stdin.resume(),oe.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let o=/%([sdijfo%])/g,a=0;if(r=e.replace(o,(c,f)=>{if(f==="%")return"%";if(a>=t.length)return c;let u=t[a++];switch(f){case"s":return String(u);case"d":case"i":return Number(u).toString();case"j":case"o":return JSON.stringify(u,null,2);default:return c}}),a<t.length)r+=` ${t.slice(a).map((c)=>typeof c==="object"?JSON.stringify(c,null,2):String(c)).join(" ")}`}let{consoleText:i,fileText:n}=this.buildOutputTexts(r);if(this.shouldStyleConsole()){let o=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",a=this.options.showIcons===!1?"":`${te.blue("\u25D0")} `;console.error(`${a}${o} ${te.cyan(i)}`)}let s=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${n}
|
|
142
|
-
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(s)}renderProgressBar(e,t=!1){if(!this.enabled||!this.shouldStyleConsole()||!oe.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),i=Math.round(e.barLength*r/100),n=e.barLength-i,s=te.green("\u2501".repeat(i)),o=te.gray("\u2501".repeat(n)),a=`[${s}${o}]`,c=`${r}%`.padStart(4),f=e.message?` ${e.message}`:"",u=this.options.showIcons===!1?"":t||r===100?te.green("\u2713"):te.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${te.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${c}${f}`,h=oe.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,oe.stdout.write(e.lastRenderedLine),t)oe.stdout.write(`
|
|
143
|
-
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||Re()||!oe.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(Re()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await Ur(this.config.logDirectory),r=[];for(let i of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(i):i.startsWith(this.name))||!i.endsWith(".log"))continue;let n=Xt(this.config.logDirectory,i);if(e.before)try{if((await zt(n)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${n}:`,s);continue}r.push(n)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let i of r)try{await Hr(i),console.warn(`Deleted log file: ${i}`)}catch(n){console.error(`Failed to delete log file ${i}:`,n)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}async function Eh(e,t={}){let{maxRetries:r=3,retryDelay:i=1000,isRetryable:n=()=>!0,fallback:s}=t,o=Error("Unknown error occurred");for(let a=0;a<=r;a++)try{return await e()}catch(c){if(o=c instanceof Error?c:Error(String(c)),a===r||!n(o))break;if(i>0)await new Promise((f)=>setTimeout(f,i))}if(s!==void 0)return s;throw o instanceof Error?o:Error(`Unknown error: ${String(o)}`)}class Kn{defaultParsers;constructor(){this.defaultParsers=[{name:"boolean",canParse:(e,t)=>t==="boolean"||["true","false","1","0","yes","no"].includes(e.toLowerCase()),parse:(e)=>{let t=e.toLowerCase();return["true","1","yes"].includes(t)}},{name:"number",canParse:(e,t)=>t==="number"||!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e)),parse:(e)=>{let t=Number(e);if(Number.isNaN(t))throw TypeError(`Cannot parse "${e}" as number`);return t}},{name:"array",canParse:(e,t)=>t==="array"||e.startsWith("[")||e.includes(","),parse:(e)=>{try{let t=JSON.parse(e);if(Array.isArray(t))return t}catch{}return e.split(",").map((t)=>t.trim())}},{name:"json",canParse:(e,t)=>t==="object"||(e.startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]")),parse:(e)=>{try{return JSON.parse(e)}catch(t){throw Error(`Cannot parse "${e}" as JSON: ${t}`)}}}]}async applyEnvironmentVariables(e,t,r={}){let{prefix:i,useCamelCase:n=!0,useBackwardCompatibility:s=!0,customParsers:o={},verbose:a=!1,trackPerformance:c=!0}=r,f=async()=>{if(!e)return{config:t,source:{type:"environment",priority:50,timestamp:new Date}};let u=i||this.generateEnvPrefix(e),l={...t};return this.processObject(l,[],u,{useCamelCase:n,useBackwardCompatibility:s,customParsers:o,verbose:a,configName:e}),{config:l,source:{type:"environment",priority:50,timestamp:new Date}}};if(c)return In.track("applyEnvironmentVariables",f,{configName:e});return f()}generateEnvPrefix(e){return e.toUpperCase().replace(/-/g,"_")}formatEnvKey(e,t){if(!t)return e.toUpperCase();return e.replace(/([A-Z])/g,"_$1").toUpperCase()}processObject(e,t,r,i){for(let[n,s]of Object.entries(e)){let o=[...t,n],a=o.map((u)=>this.formatEnvKey(u,i.useCamelCase)),c=`${r}_${a.join("_")}`,f=i.useBackwardCompatibility?`${r}_${o.map((u)=>u.toUpperCase()).join("_")}`:null;if(i.verbose);if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.processObject(s,o,r,i);else{let u=qr.env[c]||(f?qr.env[f]:void 0);if(u!==void 0){if(i.verbose){let l=qr.env[c]?c:f}try{e[n]=this.parseEnvironmentValue(u,typeof s,c,i.customParsers,i.configName)}catch(l){if(l instanceof Yn)throw l;throw tr.envVar(c,u,typeof s,i.configName)}}}}}parseEnvironmentValue(e,t,r,i,n){for(let[s,o]of Object.entries(i))try{return o(e)}catch{continue}for(let s of this.defaultParsers)if(s.canParse(e,t))try{return s.parse(e)}catch{throw tr.envVar(r,e,`${t} (via ${s.name} parser)`,n)}return e}getEnvironmentVariables(e){let t={},r=e.toUpperCase();for(let[i,n]of Object.entries(qr.env))if(i.startsWith(r)&&n!==void 0)t[i]=n;return t}validateEnvironmentVariable(e,t,r){let i=[];if(!/^[A-Z_][A-Z0-9_]*$/.test(e))i.push(`Environment variable key "${e}" should only contain uppercase letters, numbers, and underscores`);if(r)try{this.parseEnvironmentValue(e,t,r,{})}catch(n){i.push(`Cannot parse value "${t}" as ${r}: ${n}`)}return{isValid:i.length===0,errors:i}}generateEnvVarDocs(e,t,r={}){let{prefix:i,format:n="text"}=r,s=i||this.generateEnvPrefix(e),o=[];switch(this.extractEnvVarInfo(t,[],s,o),n){case"markdown":return this.formatAsMarkdown(o,e);case"json":return JSON.stringify(o,null,2);default:return this.formatAsText(o,e)}}extractEnvVarInfo(e,t,r,i){for(let[n,s]of Object.entries(e)){let o=[...t,n],a=`${r}_${o.map((c)=>this.formatEnvKey(c,!0)).join("_")}`;if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.extractEnvVarInfo(s,o,r,i);else i.push({key:a,type:Array.isArray(s)?"array":typeof s,description:`Configuration for ${o.join(".")}`,example:this.generateExample(s)})}}generateExample(e){if(Array.isArray(e))return JSON.stringify(e);if(typeof e==="object"&&e!==null)return JSON.stringify(e);return String(e)}formatAsText(e,t){let r=`Environment Variables for ${t}:
|
|
86
|
+
`:""}# dtsx cache
|
|
87
|
+
${Zr}/
|
|
88
|
+
`;Oo(t,i)}}catch{}}var yn=3,Zr=".dtsx-cache",Ic="manifest.json";var To=de(()=>{gn()});function Jc(e){switch(e){case"strict":return Lc;case"readonly":return jc;case"simplified":return _c;case"nullable":return[{pattern:/^(.+)\s*\|\s*undefined$/,replacement:"$1 | undefined",priority:5}];case"branded":return[{pattern:/^string$/,replacement:"string",condition:(t)=>t.declarationKind==="variable"&&(t.declarationName?.includes("path")??!1),priority:5}];default:return[]}}class Wo{rules;compiled=[];cache=new Map;constructor(e={rules:[]}){if(this.rules=[],e.includeDefaults!==!1)this.rules.push(...Bc);if(e.presets)for(let t of e.presets)this.rules.push(...Jc(t));this.rules.push(...e.rules),this.rules.sort((t,r)=>(r.priority||0)-(t.priority||0)),this.recompile()}recompile(){let e=Array(this.rules.length);for(let t=0;t<this.rules.length;t++){let r=this.rules[t],n=typeof r.pattern==="string"?new RegExp(r.pattern.replace(Kc,"\\$&"),r.global?"g":""):r.pattern;e[t]={rule:r,regex:n}}this.compiled=e}map(e,t={}){let r=!t.declarationName&&!t.declarationKind&&!t.filePath&&!t.isReturnType&&!t.isParameterType&&!t.isPropertyType?e:`${e}\x00${t.declarationName??""}\x00${t.declarationKind??""}\x00${t.filePath??""}\x00${t.isReturnType?"r":""}${t.isParameterType?"p":""}${t.isPropertyType?"P":""}`,n=this.cache.get(r);if(n!==void 0)return n;let i=e,s=null;for(let o=0;o<this.compiled.length;o++){let{rule:a,regex:f}=this.compiled[o];if(a.condition){if(!s)s={type:e,...t};if(!a.condition(s))continue}if(f.lastIndex=0,f.test(i)){if(f.lastIndex=0,i=i.replace(f,a.replacement),f.lastIndex=0,!a.global)break}}if(this.cache.size>=Ro){let o=Math.ceil(Ro*0.1),a=0;for(let f of this.cache.keys()){if(a++>=o)break;this.cache.delete(f)}}return this.cache.set(r,i),i}mapAll(e,t={}){return e.map((r)=>this.map(r,{...t,type:r}))}addRule(e){this.rules.push(e),this.rules.sort((t,r)=>(r.priority||0)-(t.priority||0)),this.recompile(),this.cache.clear()}removeRules(e){let t=this.rules.length;return this.rules=this.rules.filter((r)=>{let n=typeof r.pattern==="string"?r.pattern:r.pattern.source;if(e instanceof RegExp)e.lastIndex=0;return typeof e==="string"?n!==e:!e.test(n)}),this.recompile(),this.cache.clear(),t-this.rules.length}clearCache(){this.cache.clear()}getRules(){return this.rules}}function qr(e={rules:[]}){return new Wo(e)}function No(e,t,r={}){return e.replace(/:\s*([^;,)\]}]+)/g,(n,i)=>{return`: ${t.map(i.trim(),r)}`})}var Bc,Lc,jc,_c,Kc,Ro=2048,ng,sg;var Fo=de(()=>{Bc=[{pattern:/^Promise<void>$/,replacement:"Promise<void>",priority:-1},{pattern:/^Record<string,\s*any>$/,replacement:"Record<string, unknown>",priority:0},{pattern:/^Array<([^<>]+)>$/,replacement:"$1[]",priority:0}],Lc=[{pattern:/\bany\b/,replacement:"unknown",global:!0,priority:10},{pattern:/^object$/,replacement:"Record<string, unknown>",priority:10},{pattern:/^Function$/,replacement:"(...args: unknown[]) => unknown",priority:10}],jc=[{pattern:/^(\w+)\[\]$/,replacement:"readonly $1[]",priority:5},{pattern:/^Array<(.+)>$/,replacement:"ReadonlyArray<$1>",priority:5},{pattern:/^Map<(.+),\s*(.+)>$/,replacement:"ReadonlyMap<$1, $2>",priority:5},{pattern:/^Set<(.+)>$/,replacement:"ReadonlySet<$1>",priority:5}],_c=[{pattern:/^Partial<Partial<(.+)>>$/,replacement:"Partial<$1>",priority:5},{pattern:/^Required<Required<(.+)>>$/,replacement:"Required<$1>",priority:5},{pattern:/^Pick<Omit<(.+),\s*(.+)>,\s*(.+)>$/,replacement:"Pick<$1, $3>",priority:5}];Kc=/[.*+?^${}()|[\]\\]/g;ng=qr({rules:[]}),sg=qr({rules:[],presets:["strict"]})});async function Hc(){if(Ur!==null)return Ur;try{return xt=await import("prettier"),Ur=!0,!0}catch{return Ur=!1,!1}}async function Yc(e,t){if(!xt)return null;try{if(t&&xt.resolveConfig){let r=await xt.resolveConfig(t);if(r)return r}if(e&&xt.resolveConfig){let r=await xt.resolveConfig(e);if(r)return r}return null}catch{return null}}async function Gc(e,t){if(!xt)throw Error("Prettier is not available");let r={...t,parser:t.parser||"typescript"};return xt.format(e,r)}function Vc(e,t={}){let{indentSize:r=2,useTabs:n=!1,maxLineWidth:i=100,trailingNewline:s=!0,normalizeWhitespace:o=!0,sortImports:a=!0,groupImports:f=!0}=t,c=e,u=n?"\t":" ".repeat(r);if(c.indexOf(`\r
|
|
89
|
+
`)!==-1)c=c.replace(/\r\n/g,`
|
|
90
|
+
`);if(o){if(/[ \t]\n/.test(c)||/[ \t]$/.test(c))c=c.replace(/[ \t]+$/gm,"");if(c.indexOf(`
|
|
144
91
|
|
|
145
|
-
`;for(let i of e)r+=`${i.key}
|
|
146
|
-
`,r+=` Type: ${i.type}
|
|
147
|
-
`,r+=` Description: ${i.description}
|
|
148
|
-
`,r+=` Example: ${i.example}
|
|
149
92
|
|
|
150
|
-
|
|
93
|
+
`)!==-1)c=c.replace(/\n{3,}/g,`
|
|
151
94
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`;
|
|
155
|
-
`;return r}}function Oh(e,t,r={}){return Fa(e,t,r,new WeakMap)}function Fa(e,t,r,i){let{arrayMergeMode:n="replace",skipNullish:s=!1,customMerger:o}=r;if(t===null||t===void 0)return s?e:t;if(o){let a=o(e,t);if(a!==void 0)return a}if(Array.isArray(t)||Array.isArray(e))return Pa(e,t,n,i);if(!ze(t)||!ze(e))return t;return Rh(e,t,r,i)}function Pa(e,t,r,i){if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(e)&&!Array.isArray(t))return t;if(Array.isArray(t)&&Array.isArray(e))switch(r){case"replace":return t;case"concat":return kh(e,t);case"smart":return Sh(e,t,i);default:return t}return t}function kh(e,t){let r=[...t];for(let i of e)if(!r.some((n)=>Mn(n,i)))r.push(i);return r}function Sh(e,t,r){if(t.length===0)return e;if(e.length===0)return t;if(ze(t[0])&&ze(e[0]))return Th(e,t,r);if(t.every((i)=>typeof i==="string")&&e.every((i)=>typeof i==="string")){let i=[...t];for(let n of e)if(!i.includes(n))i.push(n);return i}return t}function Th(e,t,r){let i=[...t];for(let n of e){if(!ze(n)){i.push(n);continue}let s=["id","name","key","path","type"],o=!1;for(let a of s)if(a in n){if(i.find((c)=>ze(c)&&(a in c)&&c[a]===n[a])){o=!0;break}}if(!o)i.push(n)}return i}function Rh(e,t,r,i){let n=t;if(ze(n)&&i.has(n))return i.get(n);let s={...e};if(ze(n))i.set(n,s);for(let o in n){if(!Object.prototype.hasOwnProperty.call(n,o))continue;let a=n[o],c=s[o];if(r.skipNullish&&(a===null||a===void 0))continue;if(a===null||a===void 0){s[o]=a;continue}if(ze(a)&&ze(c))s[o]=Fa(c,a,r,i);else if(Array.isArray(a)||Array.isArray(c))s[o]=Pa(c,a,r.arrayMergeMode||"smart",i);else s[o]=a}return s}function Da(e,t,r="replace"){return Oh(e,t,{arrayMergeMode:r==="replace"?"replace":"smart",skipNullish:!0})}function Mn(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!Mn(e[r],t[r]))return!1;return!0}if(ze(e)&&ze(t)){let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let n of r){if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(!Mn(e[n],t[n]))return!1}return!0}return!1}function ze(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}class Ma{extensions=[".ts",".js",".mjs",".cjs",".json",".mts",".cts"];async loadFromPath(e,t,r={}){let{arrayStrategy:i="replace",useCache:n=!0,cacheTtl:s,trackPerformance:o=!0,verbose:a=!1}=r;if(n){let f=ci.getWithFileCheck("file",e);if(f){if(a)console.log(`Configuration loaded from cache: ${e}`);return f}}let c=async()=>{if(!zr(e))return null;try{let f=`?t=${Date.now()}`,u=await import(e+f),l=u.default||u,p="default"in u,h=Object.keys(u).length>0;if(!p&&!h)throw new yi(e,Error("Configuration file is empty and exports nothing"),"unknown");if(typeof l!=="object"||l===null||Array.isArray(l))throw new yi(e,Error("Configuration must export a valid object"),"unknown");let w={config:Da(t,l,i),source:{type:"file",path:e,priority:100,timestamp:new Date}};if(n)ci.setWithFileCheck("file",w,e,s);return w}catch(f){throw f instanceof Error?tr.configLoad(e,f):tr.configLoad(e,Error(String(f)))}};if(o)return In.track("loadFromPath",c,{path:e});return c()}async tryLoadFromPaths(e,t,r={}){for(let i of e)try{let n=await this.loadFromPath(i,t,r);if(n)return n}catch(n){if(n instanceof Error&&n.name==="ConfigLoadError")throw n;if(r.verbose)console.warn(`Failed to load config from ${i}:`,n)}return null}generateConfigPaths(e,t,r){let i=this.generateNamePatterns(e,r),n=[];for(let s of i)for(let o of this.extensions)n.push(wn(t,`${s}${o}`));return n}generateNamePatterns(e,t){let r=[];if(r.push("config",".config"),e)r.push(e,`.${e}.config`,`${e}.config`,`.${e}`);let i=t===void 0?[]:Array.isArray(t)?t:[t];for(let s of i){if(!s)continue;if(r.push(s,`.${s}.config`,`${s}.config`,`.${s}`),e)r.push(`${e}.${s}.config`,`.${e}.${s}.config`)}let n=new Set;return r.filter((s)=>{if(!s||n.has(s))return!1;return n.add(s),!0})}checkFileAccess(e){return Eh(async()=>{return zr(e)},{maxRetries:2,retryDelay:100,fallback:!1})}async discoverConfigFiles(e,t,r){let i=[];if(!zr(e))return i;if(t||r){let n=this.generateNamePatterns(t||"",r);for(let s of n)for(let o of this.extensions){let a=wn(e,`${s}${o}`);if(await this.checkFileAccess(a))i.push(a)}}else try{let{readdirSync:n}=await import("fs"),s=n(e);for(let o of s)if(this.looksLikeConfigFile(o)){let a=wn(e,o);if(await this.checkFileAccess(a))i.push(a)}}catch{return[]}return i}looksLikeConfigFile(e){return[/\.config\.(ts|js|mjs|cjs|json|mts|cts)$/,/^\..*\.(ts|js|mjs|cjs|json|mts|cts)$/,/config\.(ts|js|mjs|cjs|json|mts|cts)$/].some((t)=>t.test(e))}async validateConfigFile(e){let t=[];try{if(!zr(e))return t.push("Configuration file does not exist"),t;let r=await import(e),i=r.default||r;if(i===void 0)t.push("Configuration file must export a default value or named exports");else if(typeof i!=="object"||i===null)t.push("Configuration must be an object");else if(Array.isArray(i))t.push("Configuration cannot be an array at the root level");if(e.endsWith(".json"))try{let{readFileSync:n}=await import("fs"),s=n(e,"utf8");JSON.parse(s)}catch(n){t.push(`Invalid JSON syntax: ${n}`)}}catch(r){t.push(`Failed to load configuration file: ${r}`)}return t}async getFileModificationTime(e){try{let{statSync:t}=await import("fs");return t(e).mtime}catch{return null}}async preloadConfigurations(e,t={}){let r=new Map;return await Promise.allSettled(e.map(async(i)=>{try{let n=await this.loadFromPath(i,{},t);if(n)r.set(i,n.config)}catch(n){if(t.verbose)console.warn(`Failed to preload ${i}:`,n)}})),r}}class Ia{async validateConfiguration(e,t,r={}){let{stopOnFirstError:i=!1,validateRequired:n=!0,validateTypes:s=!0,customRules:o=[],trackPerformance:a=!0,verbose:c=!1}=r,f=async()=>{let u=[],l=[],p={stopOnFirstError:i,validateRequired:n,validateTypes:s,customRules:o,trackPerformance:a,verbose:c};try{if(typeof t==="string")return await this.validateWithSchemaFile(e,t,p);else if(Array.isArray(t))return this.validateWithRules(e,[...t,...o],p);else return this.validateWithJSONSchema(e,t,p)}catch(h){return u.push({path:"",message:`Validation failed: ${h}`,rule:"system"}),{isValid:!1,errors:u,warnings:l}}};if(a)return await In.track("validateConfiguration",f);return f()}async validateWithSchemaFile(e,t,r){try{if(!uu(t))throw new $i(t,[{path:"",message:"Schema file does not exist"}]);let i=await import(t),n=i.default||i;if(Array.isArray(n))return this.validateWithRules(e,n,r);else return this.validateWithJSONSchema(e,n,r)}catch(i){throw new $i(t,[{path:"",message:`Failed to load schema: ${i}`}])}}validateWithJSONSchema(e,t,r){let i=[],n=[];return this.validateObjectAgainstSchema(e,t,"",i,n,r),{isValid:i.length===0,errors:i,warnings:n}}validateObjectAgainstSchema(e,t,r,i,n,s){if(s.validateTypes&&t.type){let o=Array.isArray(e)?"array":typeof e,a=Array.isArray(t.type)?t.type:[t.type];if(!a.includes(o)){if(i.push({path:r,message:`Expected type ${a.join(" or ")}, got ${o}`,expected:a.join(" or "),actual:o,rule:"type"}),s.stopOnFirstError)return}}if(t.enum&&!t.enum.includes(e)){if(i.push({path:r,message:`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"}),s.stopOnFirstError)return}if(typeof e==="string"){if(t.minLength!==void 0&&e.length<t.minLength)i.push({path:r,message:`String length must be at least ${t.minLength}`,expected:`>= ${t.minLength}`,actual:e.length,rule:"minLength"});if(t.maxLength!==void 0&&e.length>t.maxLength)i.push({path:r,message:`String length must not exceed ${t.maxLength}`,expected:`<= ${t.maxLength}`,actual:e.length,rule:"maxLength"});if(t.pattern){if(!new RegExp(t.pattern).test(e))i.push({path:r,message:`String does not match pattern ${t.pattern}`,expected:t.pattern,actual:e,rule:"pattern"})}}if(typeof e==="number"){if(t.minimum!==void 0&&e<t.minimum)i.push({path:r,message:`Value must be at least ${t.minimum}`,expected:`>= ${t.minimum}`,actual:e,rule:"minimum"});if(t.maximum!==void 0&&e>t.maximum)i.push({path:r,message:`Value must not exceed ${t.maximum}`,expected:`<= ${t.maximum}`,actual:e,rule:"maximum"})}if(Array.isArray(e)&&t.items)for(let o=0;o<e.length;o++){let a=r?`${r}[${o}]`:`[${o}]`;if(this.validateObjectAgainstSchema(e[o],t.items,a,i,n,s),s.stopOnFirstError&&i.length>0)return}if(e&&typeof e==="object"&&!Array.isArray(e)){let o=e;if(s.validateRequired&&t.required){for(let a of t.required)if(!(a in o)){if(i.push({path:r?`${r}.${a}`:a,message:`Missing required property '${a}'`,expected:"required",rule:"required"}),s.stopOnFirstError)return}}if(t.properties){for(let[a,c]of Object.entries(t.properties))if(a in o){let f=r?`${r}.${a}`:a;if(this.validateObjectAgainstSchema(o[a],c,f,i,n,s),s.stopOnFirstError&&i.length>0)return}}if(t.additionalProperties===!1){let a=new Set(Object.keys(t.properties||{}));for(let c of Object.keys(o))if(!a.has(c))n.push({path:r?`${r}.${c}`:c,message:`Additional property '${c}' is not allowed`,rule:"additionalProperties"})}}}validateWithRules(e,t,r){let i=[],n=[];for(let s of t)try{let o=this.getValueByPath(e,s.path),a=this.validateWithRule(o,s,s.path);if(i.push(...a),r.stopOnFirstError&&i.length>0)break}catch(o){i.push({path:s.path,message:`Rule validation failed: ${o}`,rule:"system"})}return{isValid:i.length===0,errors:i,warnings:n}}validateWithRule(e,t,r){let i=[];if(t.required&&(e===void 0||e===null))return i.push({path:r,message:t.message||`Property '${r}' is required`,expected:"required",rule:"required"}),i;if(e===void 0||e===null)return i;if(t.type){let n=Array.isArray(e)?"array":typeof e;if(n!==t.type)i.push({path:r,message:t.message||`Expected type ${t.type}, got ${n}`,expected:t.type,actual:n,rule:"type"})}if(t.min!==void 0){let n=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(n<t.min)i.push({path:r,message:t.message||`Value must be at least ${t.min}`,expected:`>= ${t.min}`,actual:n,rule:"min"})}if(t.max!==void 0){let n=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(n>t.max)i.push({path:r,message:t.message||`Value must not exceed ${t.max}`,expected:`<= ${t.max}`,actual:n,rule:"max"})}if(t.pattern&&typeof e==="string"){if(!t.pattern.test(e))i.push({path:r,message:t.message||`Value does not match pattern ${t.pattern}`,expected:t.pattern.toString(),actual:e,rule:"pattern"})}if(t.enum&&!t.enum.includes(e))i.push({path:r,message:t.message||`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"});if(t.validator){let n=t.validator(e);if(n)i.push({path:r,message:t.message||n,rule:"custom"})}return i}getValueByPath(e,t){if(!t)return e;let r=t.split("."),i=e;for(let n of r)if(i&&typeof i==="object"&&n in i)i=i[n];else return;return i}generateRulesFromInterface(e){let t=[],r=e.matchAll(/(\w+)(\?)?:\s*(\w+)/g);for(let i of r){let[,n,s,o]=i;t.push({path:n,required:!s,type:this.mapTypeScriptType(o)})}return t}mapTypeScriptType(e){switch(e.toLowerCase()){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"array":return"array";case"object":return"object";default:return"object"}}static createCommonRules(){return{server:[{path:"port",required:!0,type:"number",min:1,max:65535},{path:"host",required:!0,type:"string",min:1},{path:"ssl",type:"boolean"}],database:[{path:"url",required:!0,type:"string",min:1},{path:"pool",type:"number",min:1,max:100},{path:"timeout",type:"number",min:0}],api:[{path:"baseUrl",required:!0,type:"string",pattern:Nh},{path:"timeout",type:"number",min:0},{path:"retries",type:"number",min:0,max:10}]}}}function Wh(e){if(!e)return"";let t=Array.isArray(e)?e.filter(Boolean):[e];if(t.length===0)return"";if(t.length===1)return` or alias "${t[0]}"`;return` or aliases ${t.map((r)=>`"${r}"`).join(", ")}`}class Ba{fileLoader=new Ma;envProcessor=new Kn;validator=new Ia;async loadConfig(e){let t=Date.now(),{cache:r,performance:i,schema:n,validate:s,...o}=e;try{if(r?.enabled){let c=this.checkCache(o.name||"",o);if(c)return c}let a;try{a=await this.loadConfigurationStrategies(o,!0,r)}catch(c){let f=o.__strictErrorHandling;if(c instanceof Error&&c.name==="ConfigNotFoundError"){if(f)throw c;a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`No configuration file found for "${o.name||"config"}", using defaults with environment variables`]}}else if(c instanceof Error&&c.name==="ConfigLoadError"){let u=c.message.includes("EACCES")||c.message.includes("EPERM")||c.message.includes("permission denied"),l=!u&&(c.message.includes("syntax")||c.message.includes("Expected")||c.message.includes("Unexpected")||c.message.includes("BuildMessage")||c.message.includes("errors building")),p=c.message.includes("Configuration must export a valid object")||c.message.includes("Configuration file is empty and exports nothing");if(f&&(p||u))throw c;if(l&&(!f||!p))a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:["Configuration file has syntax errors, using defaults with environment variables"]};else if(!f)a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading error, using defaults: ${c.message}`]};else throw c}else a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading failed, using defaults: ${c instanceof Error?c.message:String(c)}`]}}if(n||s)await this.validateConfiguration(a.config,n,s,o.name);if(r?.enabled&&a)this.cacheResult(o.name||"",a,r,o);if(i?.enabled){let c={operation:"loadConfig",duration:Date.now()-t,configName:o.name,timestamp:new Date};if(i.onMetrics)i.onMetrics(c);if(i.slowThreshold&&c.duration>i.slowThreshold)ut.warn(`Slow configuration loading detected: ${c.duration}ms for ${o.name}`);a.metrics=c}return a}catch(a){if(a instanceof Error&&a.name==="ConfigNotFoundError")throw a;let c=Date.now()-t;throw ut.error(`Configuration loading failed after ${c}ms:`,[a instanceof Error?a:Error(String(a))]),a}}async loadConfigurationStrategies(e,t=!1,r){let{name:i="",alias:n,cwd:s,configDir:o,defaultConfig:a,checkEnv:c=!0,arrayStrategy:f="replace",verbose:u=!1}=e,l=s||wi.cwd(),p=[],h=await this.loadLocalConfiguration(i,n,l,o,a,f,u,c,r);if(h)return p.push(...this.getLocalSearchPaths(i,n,l,o)),this.finalizeResult(h,p,c,i,u);let w=await this.loadHomeConfiguration(i,n,a,f,u,c);if(w)return p.push(...this.getHomeSearchPaths(i,n)),this.finalizeResult(w,p,c,i,u);let A=await this.loadPackageJsonConfiguration(i,n,l,a,f,u,c);if(A)return p.push(He(l,"package.json")),this.finalizeResult(A,p,c,i,u);if(p.push(...this.getAllSearchPaths(i,n,l,o)),t)throw tr.configNotFound(i,p,n);return{...await this.applyEnvironmentVariables(i,a,c,u),warnings:[`No configuration file found for "${i}"${Wh(n)}, using defaults with environment variables`]}}async loadLocalConfiguration(e,t,r,i,n,s,o,a,c){let f=a?Qr(e,n,o):n,u=this.getLocalDirectories(r,i);for(let l of u){if(o)ut.info(`Searching for configuration in: ${l}`);let p=this.fileLoader.generateConfigPaths(e,l,t),h=await this.fileLoader.tryLoadFromPaths(p,f,{arrayStrategy:s,verbose:o,cacheTtl:c?.ttl,useCache:!c?.ttl||c.ttl>100});if(h){if(o)ut.success(`Configuration loaded from: ${h.source.path}`);return h}}return null}async loadHomeConfiguration(e,t,r,i,n,s){if(!e)return null;let o=s?Qr(e,r,n):r,a=[He(Jt(),".config",e),He(Jt(),".config"),Jt()];for(let c of a){if(n)ut.info(`Checking home directory: ${c}`);let f=this.fileLoader.generateConfigPaths(e,c,t),u=await this.fileLoader.tryLoadFromPaths(f,o,{arrayStrategy:i,verbose:n});if(u){if(n)ut.success(`Configuration loaded from home directory: ${u.source.path}`);return u}}return null}async loadPackageJsonConfiguration(e,t,r,i,n,s,o){let a=o?Qr(e,i,s):i;try{let c=He(r,"package.json");if(!Ef(c))return null;let f={};try{f=JSON.parse(Of(c,"utf8"))}catch(p){if(s)ut.warn("Failed to parse package.json:",[p instanceof Error?p:Error(String(p))]);return null}let u=f[e],l=e;if(!u&&t){let p=Array.isArray(t)?t:[t];for(let h of p){if(!h)continue;if(f[h]){u=f[h],l=h;break}}}if(u&&typeof u==="object"&&!Array.isArray(u)){if(s)ut.success(`Configuration loaded from package.json: ${l}`);return{config:Da(a,u,n),source:{type:"package.json",path:c,priority:30,timestamp:new Date}}}}catch(c){if(s)ut.warn("Failed to load package.json:",[c instanceof Error?c:Error(String(c))])}return null}async applyEnvironmentVariables(e,t,r,i){if(!r||!e||typeof t!=="object"||t===null||Array.isArray(t))return{config:t,source:{type:"default",priority:10,timestamp:new Date}};return{config:Qr(e,t,i),source:{type:"environment",priority:20,timestamp:new Date}}}async finalizeResult(e,t,r,i,n){return{config:e.config,source:e.source,path:e.source.path}}async validateConfiguration(e,t,r,i){let n=[];if(r){let s=r(e);if(s)n.push(...s)}if(t){let s=await this.validator.validateConfiguration(e,t);if(!s.isValid)n.push(...s.errors.map((o)=>o.path?`${o.path}: ${o.message}`:o.message))}if(n.length>0)throw tr.configValidation(i||"unknown",n,i)}checkCache(e,t){let r=this.generateCacheKey(e,t);return ci.get(r)||null}cacheResult(e,t,r,i){let n=this.generateCacheKey(e,i);ci.set(n,t,void 0,r.ttl)}generateCacheKey(e,t){let r=[e];if(t.alias){let i=Array.isArray(t.alias)?t.alias.join(","):t.alias;r.push(`alias:${i}`)}if(t.cwd)r.push(`cwd:${t.cwd}`);if(t.configDir)r.push(`configDir:${t.configDir}`);if("checkEnv"in t)r.push(`checkEnv:${t.checkEnv}`);return r.join("|")}getLocalDirectories(e,t){return Array.from(new Set([e,He(e,"config"),He(e,".config"),t?He(e,t):void 0].filter(Boolean)))}getAllSearchPaths(e,t,r,i){let n=[];return n.push(...this.getLocalSearchPaths(e,t,r,i)),n.push(...this.getHomeSearchPaths(e,t)),n.push(He(r,"package.json")),n}getLocalSearchPaths(e,t,r,i){let n=this.getLocalDirectories(r,i),s=[];for(let o of n)s.push(...this.fileLoader.generateConfigPaths(e,o,t));return s}getHomeSearchPaths(e,t){if(!e)return[];let r=[He(Jt(),".config",e),He(Jt(),".config"),Jt()],i=[];for(let n of r)i.push(...this.fileLoader.generateConfigPaths(e,n,t));return i}async loadConfigWithResult(e){return this.loadConfig(e)}}function Qr(e,t,r=!1){let i=new Kn,n=e.toUpperCase().replace(/[^A-Z0-9]/g,"_");function s(o,a=[]){let c={...o};for(let[f,u]of Object.entries(o)){let l=[...a,f],p=[`${n}_${l.join("_").toUpperCase()}`,`${n}_${l.map((A)=>A.toUpperCase()).join("")}`,`${n}_${l.map((A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase()).join("")}`],h,w;for(let A of p)if(h=wi.env[A],h!==void 0){w=A;break}if(h!==void 0&&w)if(typeof u==="boolean")c[f]=["true","1","yes"].includes(h.toLowerCase());else if(typeof u==="number"){let A=Number(h);if(!Number.isNaN(A))c[f]=A}else if(Array.isArray(u))try{c[f]=JSON.parse(h)}catch{c[f]=h.split(",").map((A)=>A.trim())}else c[f]=h;else if(u&&typeof u==="object"&&!Array.isArray(u))c[f]=s(u,l)}return c}return s(t)}var ci,In,hu,du=(e)=>e,gu=(e,t)=>{for(var r in t)hu(e,r,{get:t[r],enumerable:!0,configurable:!0,set:mu.bind(t,r)})},pu=(e,t)=>()=>(e&&(t=e(e=0)),t),aa,pa,er,wr,ya,Ju,Vu,Yo,ti,Sn,Ie,me,Yu,Ko,Ku,Go,Gu,Uu,Cn,Hu,Uo,Ho,bn,qu,zu,Xu,Qu,ri,$a,eh,Be,th,rh,qo,ii,Tn,Te,ee,ih,zo,nh,Xo,sh,oh,An,ah,Qo,ea,lh,vn,ch,fh,uh,hh,dh,ni,wa,mh,gh="0.15.6",Ve,mi,yr,Rn,Nn,gi,Wn,Fn,$r,Pn,Dn,Ot,Ca,ba,Qe,gt,Aa,va,ph,$h,xa,pi,zg,Pe,te,Xg,Ch,Qg,bh,ep,tp,ta,rp,Ah,vh,ip,ra,np,sp,op,ap,lp,xn,xh,cp,et,Oa,yi,ka,Sa,Yn,Ta,Ra,$i,Na,Wa,tr,Nh,ut,fp,up,hp,Fh,La;var ja=ue(()=>{ci=new sa,In=new oa,hu=Object.defineProperty;aa={};gu(aa,{withErrorRecovery:()=>fa,tryLoadConfig:()=>Lu,loadConfigWithResult:()=>Iu,loadConfig:()=>ga,isRetryableError:()=>Nu,isConfigNotFoundError:()=>Ru,isBunfigError:()=>ua,globalPerformanceMonitor:()=>wr,globalCache:()=>er,getEnvOrDefault:()=>Wu,generateConfigTypes:()=>ju,defaultGeneratedDir:()=>va,defaultConfigDir:()=>Aa,deepMergeWithArrayStrategy:()=>Zn,deepMerge:()=>ha,createLibraryConfig:()=>_u,config:()=>Bu,bunfigPlugin:()=>Zu,applyEnvVarsToConfig:()=>gr,TypeGenerationError:()=>Fn,SchemaValidationError:()=>$r,PluginError:()=>Dn,PerformanceMonitor:()=>Ln,FileSystemError:()=>Wn,ErrorFactory:()=>Ot,EnvVarError:()=>gi,EnvProcessor:()=>Ci,ConfigValidator:()=>Jn,ConfigValidationError:()=>Rn,ConfigNotFoundError:()=>mi,ConfigMergeError:()=>Nn,ConfigLoader:()=>Vn,ConfigLoadError:()=>yr,ConfigFileLoader:()=>bi,ConfigCache:()=>Bn,CacheUtils:()=>ya,BunfigError:()=>Ve,BrowserConfigError:()=>Pn,ArrayMergeStrategies:()=>Ca});ph=pu(async()=>{pa=import.meta.require,er=new Bn,wr=new Ln,ya={createKey:yu,isEquivalent:$u,estimateMemoryUsage:wu},Ju=ai(On.cwd(),"config"),Vu=ai(On.cwd(),"src/generated"),Yo=oi.env.CLARITY_LOG_DIR||Wf(Au(),"logs"),ti={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:Yo,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1},Sn=await vu(),Ie={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,reset:"\x1B[0m"},me=Ie,Yu=Ie.red,Ko=Ie.green,Ku=Ie.yellow,Go=Ie.blue,Gu=Ie.magenta,Uu=Ie.cyan,Cn=Ie.white,Hu=Ie.gray,Uo=Ie.bgRed,Ho=Ie.bgYellow,bn=Ie.bold,qu=Ie.dim,zu=Ie.italic,Xu=Ie.underline,Qu=Ie.reset,ri={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},$a={debug:"\uD83D\uDD0D",info:Go("\u2139"),success:Ko("\u2713"),warning:Ho(Cn(bn(" WARN "))),error:Uo(Cn(bn(" ERROR ")))},eh=new ui("stacks"),Be=new ui("bunfig",{showTags:!0}),th=_e(pr.cwd(),"config"),rh=_e(pr.cwd(),"src/generated"),qo=si.env.CLARITY_LOG_DIR||Rf(ku(),"logs"),ii={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:qo,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1,writeToFile:!1},Tn=await Su(),Te={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bgGray:(e)=>`\x1B[100m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,strikethrough:(e)=>`\x1B[9m${e}\x1B[0m`,reset:"\x1B[0m"},ee=Te,ih=Te.red,zo=Te.green,nh=Te.yellow,Xo=Te.blue,sh=Te.magenta,oh=Te.cyan,An=Te.white,ah=Te.gray,Qo=Te.bgRed,ea=Te.bgYellow,lh=Te.bgGray,vn=Te.bold,ch=Te.dim,fh=Te.italic,uh=Te.underline,hh=Te.strikethrough,dh=Te.reset,ni={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},wa={debug:"\uD83D\uDD0D",info:Xo("\u2139"),success:zo("\u2713"),warning:ea(An(vn(" WARN "))),error:Qo(An(vn(" ERROR ")))},mh=new di("stacks"),Ve=class extends Error{timestamp;context;constructor(e,t={}){super(e);if(this.name=this.constructor.name,this.timestamp=new Date,this.context=t,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,timestamp:this.timestamp.toISOString(),context:this.context,stack:this.stack}}toString(){let e=Object.keys(this.context).length>0?` (${Object.entries(this.context).map(([t,r])=>`${t}: ${r}`).join(", ")})`:"";return`${this.name} [${this.code}]: ${this.message}${e}`}},mi=class extends Ve{code="CONFIG_NOT_FOUND";constructor(e,t,r){let i=r?` or alias "${r}"`:"";super(`Configuration "${e}"${i} not found`,{configName:e,alias:r,searchPaths:t,searchPathCount:t.length})}},yr=class extends Ve{code="CONFIG_LOAD_ERROR";constructor(e,t,r){super(`Failed to load configuration from "${e}": ${t.message}`,{configPath:e,configName:r,originalError:t.name,originalMessage:t.message});this.cause=t}},Rn=class extends Ve{code="CONFIG_VALIDATION_ERROR";constructor(e,t,r){super(`Configuration validation failed for "${e}"`,{configPath:e,configName:r,validationErrors:t,errorCount:t.length})}},Nn=class extends Ve{code="CONFIG_MERGE_ERROR";constructor(e,t,r,i){super(`Failed to merge configuration from "${e}" with "${t}": ${r.message}`,{sourcePath:e,targetPath:t,configName:i,originalError:r.name,originalMessage:r.message});this.cause=r}},gi=class extends Ve{code="ENV_VAR_ERROR";constructor(e,t,r,i){super(`Failed to parse environment variable "${e}" with value "${t}" as ${r}`,{envKey:e,envValue:t,expectedType:r,configName:i})}},Wn=class extends Ve{code="FILE_SYSTEM_ERROR";constructor(e,t,r){super(`File system ${e} failed for "${t}": ${r.message}`,{operation:e,path:t,originalError:r.name,originalMessage:r.message});this.cause=r}},Fn=class extends Ve{code="TYPE_GENERATION_ERROR";constructor(e,t,r){super(`Failed to generate types from "${e}" to "${t}": ${r.message}`,{configDir:e,outputPath:t,originalError:r.name,originalMessage:r.message});this.cause=r}},$r=class extends Ve{code="SCHEMA_VALIDATION_ERROR";constructor(e,t,r){super(`Schema validation failed${r?` for config "${r}"`:""}`,{schemaPath:e,configName:r,validationErrors:t,errorCount:t.length})}},Pn=class extends Ve{code="BROWSER_CONFIG_ERROR";constructor(e,t,r,i){super(`Failed to fetch configuration from "${e}": ${t} ${r}`,{endpoint:e,status:t,statusText:r,configName:i})}},Dn=class extends Ve{code="PLUGIN_ERROR";constructor(e,t,r){super(`Plugin "${e}" failed during ${t}: ${r.message}`,{pluginName:e,operation:t,originalError:r.name,originalMessage:r.message});this.cause=r}},Ot={configNotFound(e,t,r){return new mi(e,t,r)},configLoad(e,t,r){return new yr(e,t,r)},configValidation(e,t,r){return new Rn(e,t,r)},configMerge(e,t,r,i){return new Nn(e,t,r,i)},envVar(e,t,r,i){return new gi(e,t,r,i)},fileSystem(e,t,r){return new Wn(e,t,r)},typeGeneration(e,t,r){return new Fn(e,t,r)},schemaValidation(e,t,r){return new $r(e,t,r)},browserConfig(e,t,r,i){return new Pn(e,t,r,i)},plugin(e,t,r){return new Dn(e,t,r)}},Ca={replace:"replace",concat:"concat",smart:"smart"},ba=/^https?:\/\//,Qe=new di("bunfig",{showTags:!0}),gt=new Vn,Aa=Ze(Rt.cwd(),"config"),va=Ze(Rt.cwd(),"src/generated")});$h=li.env.CLARITY_LOG_DIR||eu(yh(),"logs"),xa={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:$h,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1,writeToFile:!1},pi={...xa},zg=(async()=>{try{let{loadConfig:e}=await ph().then(()=>aa),t=await e({name:"clarity",alias:"logging",defaultConfig:xa,cwd:li.cwd()});if(t)Object.assign(pi,t)}catch{}return pi})();Pe={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bgGray:(e)=>`\x1B[100m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,strikethrough:(e)=>`\x1B[9m${e}\x1B[0m`,reset:"\x1B[0m"},te=Pe,Xg=Pe.red,Ch=Pe.green,Qg=Pe.yellow,bh=Pe.blue,ep=Pe.magenta,tp=Pe.cyan,ta=Pe.white,rp=Pe.gray,Ah=Pe.bgRed,vh=Pe.bgYellow,ip=Pe.bgGray,ra=Pe.bold,np=Pe.dim,sp=Pe.italic,op=Pe.underline,ap=Pe.strikethrough,lp=Pe.reset,xn={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},xh={debug:"\uD83D\uDD0D",info:bh("\u2139"),success:Ch("\u2713"),warning:vh(ta(ra(" WARN "))),error:Ah(ta(ra(" ERROR ")))};cp=new Ai("stacks");et=class et extends Error{timestamp;context;constructor(e,t={}){super(e);if(this.name=this.constructor.name,this.timestamp=new Date,this.context=t,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,timestamp:this.timestamp.toISOString(),context:this.context,stack:this.stack}}toString(){let e=Object.keys(this.context).length>0?` (${Object.entries(this.context).map(([t,r])=>`${t}: ${r}`).join(", ")})`:"";return`${this.name} [${this.code}]: ${this.message}${e}`}};Oa=class Oa extends et{code="CONFIG_NOT_FOUND";constructor(e,t,r){let i=r===void 0?[]:Array.isArray(r)?r.filter(Boolean):[r],n="";if(i.length===1)n=` or alias "${i[0]}"`;else if(i.length>1)n=` or aliases ${i.map((s)=>`"${s}"`).join(", ")}`;super(`Configuration "${e}"${n} not found`,{configName:e,alias:r,searchPaths:t,searchPathCount:t.length})}};yi=class yi extends et{code="CONFIG_LOAD_ERROR";constructor(e,t,r){super(`Failed to load configuration from "${e}": ${t.message}`,{configPath:e,configName:r,originalError:t.name,originalMessage:t.message});this.cause=t}};ka=class ka extends et{code="CONFIG_VALIDATION_ERROR";constructor(e,t,r){super(`Configuration validation failed for "${e}"`,{configPath:e,configName:r,validationErrors:t,errorCount:t.length})}};Sa=class Sa extends et{code="CONFIG_MERGE_ERROR";constructor(e,t,r,i){super(`Failed to merge configuration from "${e}" with "${t}": ${r.message}`,{sourcePath:e,targetPath:t,configName:i,originalError:r.name,originalMessage:r.message});this.cause=r}};Yn=class Yn extends et{code="ENV_VAR_ERROR";constructor(e,t,r,i){super(`Failed to parse environment variable "${e}" with value "${t}" as ${r}`,{envKey:e,envValue:t,expectedType:r,configName:i})}};Ta=class Ta extends et{code="FILE_SYSTEM_ERROR";constructor(e,t,r){super(`File system ${e} failed for "${t}": ${r.message}`,{operation:e,path:t,originalError:r.name,originalMessage:r.message});this.cause=r}};Ra=class Ra extends et{code="TYPE_GENERATION_ERROR";constructor(e,t,r){super(`Failed to generate types from "${e}" to "${t}": ${r.message}`,{configDir:e,outputPath:t,originalError:r.name,originalMessage:r.message});this.cause=r}};$i=class $i extends et{code="SCHEMA_VALIDATION_ERROR";constructor(e,t,r){super(`Schema validation failed${r?` for config "${r}"`:""}`,{schemaPath:e,configName:r,validationErrors:t,errorCount:t.length})}};Na=class Na extends et{code="BROWSER_CONFIG_ERROR";constructor(e,t,r,i){super(`Failed to fetch configuration from "${e}": ${t} ${r}`,{endpoint:e,status:t,statusText:r,configName:i})}};Wa=class Wa extends et{code="PLUGIN_ERROR";constructor(e,t,r){super(`Plugin "${e}" failed during ${t}: ${r.message}`,{pluginName:e,operation:t,originalError:r.name,originalMessage:r.message});this.cause=r}};tr={configNotFound(e,t,r){return new Oa(e,t,r)},configLoad(e,t,r){return new yi(e,t,r)},configValidation(e,t,r){return new ka(e,t,r)},configMerge(e,t,r,i){return new Sa(e,t,r,i)},envVar(e,t,r,i){return new Yn(e,t,r,i)},fileSystem(e,t,r){return new Ta(e,t,r)},typeGeneration(e,t,r){return new Ra(e,t,r)},schemaValidation(e,t,r){return new $i(e,t,r)},browserConfig(e,t,r,i){return new Na(e,t,r,i)},plugin(e,t,r){return new Wa(e,t,r)}};Nh=/^https?:\/\//;ut=new Ai("bunfig",{showTags:!0});fp=new Ba;up=He(wi.cwd(),"config"),hp=He(wi.cwd(),"src/generated"),Fh={cwd:xf.cwd(),root:"./src",entrypoints:["**/*.{ts,tsx,mts,cts}"],outdir:"./dist",keepComments:!0,clean:!0,tsconfigPath:"./tsconfig.json",outputStructure:"mirror",verbose:!1,importOrder:["bun"],declarationMap:!1},La=Fh});function rr(e,t){let r=1,i=1;for(let n=0;n<t;n++)if(e.charCodeAt(n)===10)r++,i=1;else i++;return{line:r,column:i}}function _a(e){let t=[],r=[],i=[],n={")":"(","]":"[","}":"{"},s=0,o=0,a=-1;for(let f=0;f<e.length;f++){let u=e.charCodeAt(f),l=e.charCodeAt(f+1);if(a!==-1){if(u===42&&l===47)r.push({start:a,end:f+2}),a=-1,f++;continue}if(s){if(u===92)f++;else if(u===s)r.push({start:o,end:f+1}),s=0;continue}if(u===47&&l===42){a=f,f++;continue}if(u===47&&l===47){let h=f;while(f<e.length&&e.charCodeAt(f)!==10)f++;r.push({start:h,end:f});continue}if(u===39||u===34||u===96){s=u,o=f;continue}let p=e[f];if(p==="("||p==="["||p==="{")i.push({char:p,offset:f});else if(n[p]){let h=i.pop();if(!h||h.char!==n[p])t.push({...rr(e,f),message:`Unexpected closing delimiter ${p}`,code:"DTSX1004"})}}if(s)t.push({...rr(e,o),message:"Unterminated string literal",code:"DTSX1002"});if(a!==-1)t.push({...rr(e,a),message:"Unterminated block comment",code:"DTSX1003"});for(let f of i)t.push({...rr(e,f.offset),message:`Unclosed delimiter ${f.char}`,code:"DTSX1001"});let c=[[/\b(?:interface|class|enum)\s*(?=[{=])/g,"Declaration name expected"],[/\bfunction\s*(?=\()/g,"Function name expected"],[/\(\s*:/g,"Parameter name expected"]];for(let[f,u]of c)for(let l of e.matchAll(f)){if(r.some((p)=>l.index>=p.start&&l.index<p.end))continue;t.push({...rr(e,l.index),message:u,code:"DTSX1005"})}for(let f of e.matchAll(/\btype\s*(?=[{=])/g)){if(r.some((l)=>f.index>=l.start&&f.index<l.end))continue;let u=e.slice(0,f.index).trimEnd();if(u.endsWith("import")||u.endsWith("export"))continue;t.push({...rr(e,f.index),message:"Declaration name expected",code:"DTSX1005"})}return t.sort((f,u)=>f.line-u.line||f.column-u.column)}var Za=()=>{};import{statSync as Ph}from"fs";import{readFile as Dh,readdir as Rp}from"fs/promises";import{createRequire as Mh}from"module";import{dirname as Ih,isAbsolute as Ja,join as Bh,resolve as Va}from"path";import Lh from"process";function Un(){return`${String.fromCharCode(47,47,35)} sourceMappingURL=`}async function Cr(e,t,r="lf"){let i=t.replace(/\r\n/g,`
|
|
156
|
-
`)
|
|
157
|
-
`))i
|
|
158
|
-
|
|
159
|
-
`)
|
|
160
|
-
|
|
161
|
-
`),
|
|
162
|
-
`)
|
|
163
|
-
|
|
164
|
-
`
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
`
|
|
168
|
-
`),s=e.location.line-1;if(s>=0&&s<n.length){let o=Math.max(0,s-1),a=Math.min(n.length-1,s+1);for(let c=o;c<=a;c++){let f=(c+1).toString().padStart(4," "),u=c===s?">":" ";if(r.push(` ${u} ${f} | ${n[c]}`),c===s&&e.location.column>0){let l=" ".repeat(10+e.location.column-1);r.push(` ${l}^`)}}}}if(e.suggestion)r.push(""),r.push(` Suggestion: ${e.suggestion}`);return r.join(`
|
|
169
|
-
`)}var br;var tl=ue(()=>{br={PARSE_ERROR:"PARSE_ERROR",SYNTAX_ERROR:"SYNTAX_ERROR",FILE_NOT_FOUND:"FILE_NOT_FOUND",FILE_READ_ERROR:"FILE_READ_ERROR",FILE_WRITE_ERROR:"FILE_WRITE_ERROR",TYPE_INFERENCE_ERROR:"TYPE_INFERENCE_ERROR",UNRESOLVED_TYPE:"UNRESOLVED_TYPE",EXTRACTION_ERROR:"EXTRACTION_ERROR",PROCESSING_ERROR:"PROCESSING_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",INVALID_DECLARATION:"INVALID_DECLARATION",CONFIG_ERROR:"CONFIG_ERROR",INVALID_ENTRYPOINT:"INVALID_ENTRYPOINT",CIRCULAR_DEPENDENCY:"CIRCULAR_DEPENDENCY",TIMEOUT_ERROR:"TIMEOUT_ERROR",NOT_SUPPORTED:"NOT_SUPPORTED",UNKNOWN_ERROR:"UNKNOWN_ERROR"}});function Gh(e){switch(e){case"strict":return Vh;case"readonly":return Yh;case"simplified":return Kh;case"nullable":return[{pattern:/^(.+)\s*\|\s*undefined$/,replacement:"$1 | undefined",priority:5}];case"branded":return[{pattern:/^string$/,replacement:"string",condition:(t)=>t.declarationKind==="variable"&&(t.declarationName?.includes("path")??!1),priority:5}];default:return[]}}class il{rules;compiled=[];cache=new Map;constructor(e={rules:[]}){if(this.rules=[],e.includeDefaults!==!1)this.rules.push(...Jh);if(e.presets)for(let t of e.presets)this.rules.push(...Gh(t));this.rules.push(...e.rules),this.rules.sort((t,r)=>(r.priority||0)-(t.priority||0)),this.recompile()}recompile(){let e=Array(this.rules.length);for(let t=0;t<this.rules.length;t++){let r=this.rules[t],i=typeof r.pattern==="string"?new RegExp(r.pattern.replace(Uh,"\\$&"),r.global?"g":""):r.pattern;e[t]={rule:r,regex:i}}this.compiled=e}map(e,t={}){let r=!t.declarationName&&!t.declarationKind&&!t.filePath&&!t.isReturnType&&!t.isParameterType&&!t.isPropertyType?e:`${e}\x00${t.declarationName??""}\x00${t.declarationKind??""}\x00${t.filePath??""}\x00${t.isReturnType?"r":""}${t.isParameterType?"p":""}${t.isPropertyType?"P":""}`,i=this.cache.get(r);if(i!==void 0)return i;let n=e,s=null;for(let o=0;o<this.compiled.length;o++){let{rule:a,regex:c}=this.compiled[o];if(a.condition){if(!s)s={type:e,...t};if(!a.condition(s))continue}if(c.lastIndex=0,c.test(n)){if(c.lastIndex=0,n=n.replace(c,a.replacement),c.lastIndex=0,!a.global)break}}if(this.cache.size>=rl){let o=Math.ceil(rl*0.1),a=0;for(let c of this.cache.keys()){if(a++>=o)break;this.cache.delete(c)}}return this.cache.set(r,n),n}mapAll(e,t={}){return e.map((r)=>this.map(r,{...t,type:r}))}addRule(e){this.rules.push(e),this.rules.sort((t,r)=>(r.priority||0)-(t.priority||0)),this.recompile(),this.cache.clear()}removeRules(e){let t=this.rules.length;return this.rules=this.rules.filter((r)=>{let i=typeof r.pattern==="string"?r.pattern:r.pattern.source;if(e instanceof RegExp)e.lastIndex=0;return typeof e==="string"?i!==e:!e.test(i)}),this.recompile(),this.cache.clear(),t-this.rules.length}clearCache(){this.cache.clear()}getRules(){return this.rules}}function xi(e={rules:[]}){return new il(e)}function nl(e,t,r={}){return e.replace(/:\s*([^;,)\]}]+)/g,(i,n)=>{return`: ${t.map(n.trim(),r)}`})}var Jh,Vh,Yh,Kh,Uh,rl=2048,Lp,jp;var sl=ue(()=>{Jh=[{pattern:/^Promise<void>$/,replacement:"Promise<void>",priority:-1},{pattern:/^Record<string,\s*any>$/,replacement:"Record<string, unknown>",priority:0},{pattern:/^Array<([^<>]+)>$/,replacement:"$1[]",priority:0}],Vh=[{pattern:/\bany\b/,replacement:"unknown",global:!0,priority:10},{pattern:/^object$/,replacement:"Record<string, unknown>",priority:10},{pattern:/^Function$/,replacement:"(...args: unknown[]) => unknown",priority:10}],Yh=[{pattern:/^(\w+)\[\]$/,replacement:"readonly $1[]",priority:5},{pattern:/^Array<(.+)>$/,replacement:"ReadonlyArray<$1>",priority:5},{pattern:/^Map<(.+),\s*(.+)>$/,replacement:"ReadonlyMap<$1, $2>",priority:5},{pattern:/^Set<(.+)>$/,replacement:"ReadonlySet<$1>",priority:5}],Kh=[{pattern:/^Partial<Partial<(.+)>>$/,replacement:"Partial<$1>",priority:5},{pattern:/^Required<Required<(.+)>>$/,replacement:"Required<$1>",priority:5},{pattern:/^Pick<Omit<(.+),\s*(.+)>,\s*(.+)>$/,replacement:"Pick<$1, $3>",priority:5}];Uh=/[.*+?^${}()|[\]\\]/g;Lp=xi({rules:[]}),jp=xi({rules:[],presets:["strict"]})});function pt(e,t=!0){if(!t||!e||e.length===0)return"";if(e.length===1){let i=e[0];if(i.length>0&&i.charCodeAt(0)>32&&i.charCodeAt(i.length-1)>32)return`${i}
|
|
170
|
-
`;return`${i.trim()}
|
|
171
|
-
`}let r="";for(let i=0;i<e.length;i++){if(i>0)r+=`
|
|
172
|
-
`;r+=e[i].trim()}return`${r}
|
|
173
|
-
`}var ol=()=>{};function Xh(e){let t=[],r=0;for(let i=0;i<=e.length;i++)if(i===e.length||e[i]===`
|
|
174
|
-
`){let n=r,s=i;while(n<s&&(e[n]===" "||e[n]==="\t"||e[n]==="\r"))n++;while(s>n&&(e[s-1]===" "||e[s-1]==="\t"||e[s-1]==="\r"))s--;let o=e.slice(n,s);if(r=i+1,o.startsWith("///")){if(o.indexOf("<")===-1)continue;if(Hh.test(o)||qh.test(o)||zh.test(o))t.push(o)}else if(o===""||o.startsWith("//"))continue;else break}return t}function Qh(e){if(e.includes(`
|
|
95
|
+
`);c=Zc(c,u)}if(a||f)c=qc(c,{sort:a,group:f});if(i>0)c=Xc(c,i,u);if(s&&!c.endsWith(`
|
|
96
|
+
`))c+=`
|
|
97
|
+
`;return c}function Zc(e,t){let r=e.split(`
|
|
98
|
+
`),n=[];for(let i of r){let s=i.match(/^(\s*)(.*)$/);if(!s){n.push(i);continue}let[,o,a]=s;if(!a){n.push("");continue}let f=o.replace(/\t/g," ").length,c=Math.floor(f/2);n.push(t.repeat(c)+a)}return n.join(`
|
|
99
|
+
`)}function qc(e,t){let r=e.split(`
|
|
100
|
+
`),n=[],i=[],s=!1,o=0;for(let f=0;f<r.length;f++){let c=r[f],u=c.match(/^(import\s+(?:type\s+)?.*from\s+['"])([^'"]+)(['"].*)$/);if(u){s=!0,o=f;let l=u[1];n.push({line:c,source:u[2],isType:l.startsWith("import type ")||l.startsWith("import type\t")})}else if(s&&c.trim()==="")continue;else{if(s)s=!1;i.push(c)}}if(n.length===0)return e;if(t.sort)n.sort((f,c)=>{if(f.isType!==c.isType)return f.isType?1:-1;return Uc(f.source,c.source)});let a;if(t.group){let f=[],c=[],u=[],l=[],p=[];for(let h=0;h<n.length;h++){let w=n[h],A=w.source;if(A.charCodeAt(0)===46)p.push(w);else if(A.startsWith("node:"))f.push(w);else if(A.charCodeAt(0)===64)l.push(w);else if(A.includes("/"))u.push(w);else c.push(w)}a=[...f.map((h)=>h.line),...f.length>0&&c.length>0?[""]:[],...c.map((h)=>h.line),...(f.length>0||c.length>0)&&u.length>0?[""]:[],...u.map((h)=>h.line),...l.length>0&&(f.length>0||c.length>0||u.length>0)?[""]:[],...l.map((h)=>h.line),...p.length>0?[""]:[],...p.map((h)=>h.line)]}else a=n.map((f)=>f.line);return[...a,"",...i].join(`
|
|
101
|
+
`)}function Uc(e,t){let r=e.startsWith("node:"),n=t.startsWith("node:");if(r!==n)return r?-1:1;let i=e.startsWith("."),s=t.startsWith(".");if(i!==s)return i?1:-1;return e.localeCompare(t)}function Xc(e,t,r){let n=e.split(`
|
|
102
|
+
`),i=[];for(let s of n){if(s.length<=t){i.push(s);continue}if(s.trimStart().startsWith("import ")){i.push(s);continue}let o=s.match(/^(\s*)/)?.[1]||"",a=o+r;if(s.includes("{")&&s.includes("}")){let f=zc(s,t,o,a);i.push(...f);continue}if(s.includes(" | ")){let f=Qc(s,t,o,a);i.push(...f);continue}i.push(s)}return i.join(`
|
|
103
|
+
`)}function zc(e,t,r,n){let i=e.match(/^(\s*)(.*?)(\{)(.+)(\}.*)$/);if(!i)return[e];let[,,s,o,a,f]=i,c=a.split(/;\s*|,\s*/).filter((u)=>u.trim());if(c.length<=1)return[e];return[`${r}${s}${o}`,...c.map((u)=>`${n}${u.trim()};`),`${r}${f.trim()}`]}function Qc(e,t,r,n){let i=e.match(/^(\s*)(.*?=\s*)(.+)$/);if(!i)return[e];let[,,s,o]=i,a=o.split(/\s*\|\s*/).filter((f)=>f.trim());if(a.length<=2)return[e];return[`${r}${s}`,...a.map((f,c)=>`${n}${c>0?"| ":" "}${f.trim()}`)]}async function Po(e,t={},r){let n=[];if(t.usePrettier!==!1){if(await Hc())try{let i={...await Yc(t.prettierConfigPath,r),...t.prettierOptions,parser:"typescript"};return{content:await Gc(e,i),usedPrettier:!0}}catch(i){n.push(`Prettier formatting failed: ${i}. Using built-in formatter.`)}else if(t.usePrettier===!0)n.push("Prettier requested but not available. Using built-in formatter.")}return{content:Vc(e,t.builtIn),usedPrettier:!1,warnings:n.length>0?n:void 0}}var Ur=null,xt=null;var Do=()=>{};function Mo(e,t,r){let n={file:t,message:"Unknown error",code:yr.UNKNOWN_ERROR};if(e instanceof Error){n.message=e.message,n.stack=e.stack;let i=e.message.match(/\((\d+),(\d+)\)/);if(i)n.location={line:Number.parseInt(i[1],10),column:Number.parseInt(i[2],10)};if(e.message.includes("Cannot find")||e.message.includes("not found"))n.code=yr.FILE_NOT_FOUND,n.suggestion="Check that the file path is correct and the file exists.";else if(e.message.includes("syntax")||e.message.includes("Unexpected token"))n.code=yr.SYNTAX_ERROR,n.suggestion="Check for syntax errors in your TypeScript code.";else if(e.message.includes("type")&&e.message.includes("cannot"))n.code=yr.TYPE_INFERENCE_ERROR,n.suggestion="Add explicit type annotations to help with type inference.";else if(e.message.includes("parse")||e.message.includes("Parse"))n.code=yr.PARSE_ERROR,n.suggestion="The file contains invalid TypeScript syntax."}else if(typeof e==="string")n.message=e;return n}function Io(e,t){let r=[],n=e.file;if(e.location)n+=`:${e.location.line}:${e.location.column}`;if(e.code)n+=` [${e.code}]`;if(r.push(n),r.push(` Error: ${e.message}`),t&&e.location){r.push("");let i=t.split(`
|
|
104
|
+
`),s=e.location.line-1;if(s>=0&&s<i.length){let o=Math.max(0,s-1),a=Math.min(i.length-1,s+1);for(let f=o;f<=a;f++){let c=(f+1).toString().padStart(4," "),u=f===s?">":" ";if(r.push(` ${u} ${c} | ${i[f]}`),f===s&&e.location.column>0){let l=" ".repeat(10+e.location.column-1);r.push(` ${l}^`)}}}}if(e.suggestion)r.push(""),r.push(` Suggestion: ${e.suggestion}`);return r.join(`
|
|
105
|
+
`)}var yr;var Bo=de(()=>{yr={PARSE_ERROR:"PARSE_ERROR",SYNTAX_ERROR:"SYNTAX_ERROR",FILE_NOT_FOUND:"FILE_NOT_FOUND",FILE_READ_ERROR:"FILE_READ_ERROR",FILE_WRITE_ERROR:"FILE_WRITE_ERROR",TYPE_INFERENCE_ERROR:"TYPE_INFERENCE_ERROR",UNRESOLVED_TYPE:"UNRESOLVED_TYPE",EXTRACTION_ERROR:"EXTRACTION_ERROR",PROCESSING_ERROR:"PROCESSING_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",INVALID_DECLARATION:"INVALID_DECLARATION",CONFIG_ERROR:"CONFIG_ERROR",INVALID_ENTRYPOINT:"INVALID_ENTRYPOINT",CIRCULAR_DEPENDENCY:"CIRCULAR_DEPENDENCY",TIMEOUT_ERROR:"TIMEOUT_ERROR",NOT_SUPPORTED:"NOT_SUPPORTED",UNKNOWN_ERROR:"UNKNOWN_ERROR"}});function ut(e,t=!0){if(!t||!e||e.length===0)return"";if(e.length===1){let n=e[0];if(n.length>0&&n.charCodeAt(0)>32&&n.charCodeAt(n.length-1)>32)return`${n}
|
|
106
|
+
`;return`${n.trim()}
|
|
107
|
+
`}let r="";for(let n=0;n<e.length;n++){if(n>0)r+=`
|
|
108
|
+
`;r+=e[n].trim()}return`${r}
|
|
109
|
+
`}var Lo=()=>{};function iu(e){let t=[],r=0;for(let n=0;n<=e.length;n++)if(n===e.length||e[n]===`
|
|
110
|
+
`){let i=r,s=n;while(i<s&&(e[i]===" "||e[i]==="\t"||e[i]==="\r"))i++;while(s>i&&(e[s-1]===" "||e[s-1]==="\t"||e[s-1]==="\r"))s--;let o=e.slice(i,s);if(r=n+1,o.startsWith("///")){if(o.indexOf("<")===-1)continue;if(eu.test(o)||tu.test(o)||ru.test(o))t.push(o)}else if(o===""||o.startsWith("//"))continue;else break}return t}function nu(e){if(e.includes(`
|
|
175
111
|
`))return`/**
|
|
176
112
|
* ${e}
|
|
177
113
|
*/
|
|
178
114
|
`;return`/** ${e} */
|
|
179
|
-
`}function
|
|
115
|
+
`}function su(e){let t=e.indexOf("{");if(t===-1)return-1;let r=e.indexOf("<");if(r===-1||r>t)return t;let n=0,i=!1,s="";for(let o=0;o<e.length;o++){let a=e[o],f=o>0?e[o-1]:"";if(!i&&(a==='"'||a==="'"||a==="`"))i=!0,s=a;else if(i&&a===s&&f!=="\\")i=!1;if(!i){if(a==="<")n++;else if(a===">")n--;else if(a==="{"&&n===0)return o}}return-1}function ou(e,t=!0){return ut(e.leadingComments,t)+e.text}function jo(e,t=!0){let r=ut(e.leadingComments,t);if(e.typeAnnotation&&!e.value)return r+e.text;let n="";if(e.isExported)n+="export ";n+="declare ";let i=e.modifiers?.[0]||"const";n+=`${i} `,n+=e.name;let{typeAnnotation:s,value:o}=e;if(o&&o.includes(" satisfies ")){let f=zs(o);if(f)s=f}else if(!s&&o&&o.trim().endsWith("as const"))s=Ee(o,!0);else if(!s&&o&&i==="const"){let f=o.trim(),c=f.startsWith("{")||f.startsWith("[");if(c)Qi();s=Ee(o,!c)}else if(!s&&o)s=Ee(o,i==="const");if(!s)s="unknown";let a="";if(t&&o&&!e.typeAnnotation&&!o.trim().endsWith("as const")){let f=o.trim();if(i!=="const"){if((s==="string"||s==="number"||s==="boolean")&&f.length>0)a=`@defaultValue ${f}`}else if(f.startsWith("{")||f.startsWith("[")){let c=en();if(c)if(c.includes(`
|
|
180
116
|
`))a=`@defaultValue
|
|
181
117
|
* \`\`\`ts
|
|
182
|
-
${
|
|
118
|
+
${c.split(`
|
|
183
119
|
`).map((u)=>` * ${u}`).join(`
|
|
184
120
|
`)}
|
|
185
|
-
* \`\`\``;else a=`@defaultValue \`${
|
|
121
|
+
* \`\`\``;else a=`@defaultValue \`${c}\``}}else if(t&&o&&e.typeAnnotation&&Xs(e.typeAnnotation)){Qi();let f=o.trim(),c=f.endsWith("as const")?f.slice(0,-8).trim():f;Ee(c,!1);let u=en();if(u)if(u.includes(`
|
|
186
122
|
`))a=`@defaultValue
|
|
187
123
|
* \`\`\`ts
|
|
188
124
|
${u.split(`
|
|
189
125
|
`).map((l)=>` * ${l}`).join(`
|
|
190
126
|
`)}
|
|
191
|
-
* \`\`\``;else a=`@defaultValue \`${u}\``}if(
|
|
127
|
+
* \`\`\``;else a=`@defaultValue \`${u}\``}if(n+=`: ${s};`,a&&r&&r.includes("@defaultValue"))a="";if(a&&r){let f=r.trimEnd(),c=f.lastIndexOf("*/");if(c!==-1){let u=f.slice(0,c).trimEnd();if(u.startsWith("/** ")&&!u.includes(`
|
|
192
128
|
`))u=`/**
|
|
193
129
|
* ${u.slice(4)}`;return`${u}
|
|
194
130
|
* ${a}
|
|
195
131
|
*/
|
|
196
|
-
`+
|
|
197
|
-
* ${
|
|
132
|
+
`+n}return`/**
|
|
133
|
+
* ${f.replace(/^\/\/\s*/,"")}
|
|
198
134
|
* ${a}
|
|
199
135
|
*/
|
|
200
|
-
${
|
|
201
|
-
`;
|
|
202
|
-
`));for(let
|
|
203
|
-
`);if(
|
|
204
|
-
`;
|
|
205
|
-
`;
|
|
206
|
-
`;
|
|
207
|
-
`;
|
|
208
|
-
`;n+=S[P]}if(!n&&(o.length>0||w.length>0))return"export {};";return n}var Hh,qh,zh,Nt,hd,fl=null,ul,hl;var ml=ue(()=>{ol();Xi();Hh=/^\/\/\/\s*<reference\s+(?:path|types|lib|no-default-lib)\s*=\s*["'][^"']+["']\s*\/>/,qh=/^\/\/\/\s*<amd-module\s+name\s*=\s*["'][^"']+["']\s*\/>/,zh=/^\/\/\/\s*<amd-dependency\s+path\s*=\s*["'][^"']+["']/;Nt=new Map;hd=/export\s+(?:type\s+)?\{\s*([^}]+)\s*\}/,ul=[],hl=[]});import{mkdir as Hn,readdir as dd,realpath as md,rm as gd}from"fs/promises";import{availableParallelism as pd}from"os";import{basename as $l,dirname as vr,extname as yd,isAbsolute as Xn,parse as $d,relative as Ne,resolve as Xe}from"path";async function gl(e,t,r,i,n){let s=$l(e)||"output.d.ts",o=Ne(vr(e),t),a=`${s}.map`,c=r.lastIndexOf(`
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
`)}if(r.plugins&&r.plugins.length>0)await i.runOnEnd(o);return J.debug("DTS generation complete!"),o}async function pl(e){try{return await md(e)}catch{return Xe(e)}}async function Cd(e){let t=Xe(e.cwd,e.outdir);if(e.bundle&&e.bundleOutput){if(Xn(e.bundleOutput))throw Error("bundleOutput must be relative to outdir");let n=Xe(t,e.bundleOutput);if(!Ei(n,t))throw Error("bundleOutput must stay within outdir")}if(!e.clean||e.dryRun)return;if(t===$d(t).root)throw Error("Refusing to clean declarations from the filesystem root");let[r,i]=await Promise.all([pl(t),pl(Xe(e.cwd,e.root))]);if(Ei(i,r))throw Error("Refusing to clean an outdir that contains the source root")}function bd(e){let t=Ar.get(e);if(!t){if(t=new yl(e),Ar.set(e,t),Ar.size>wd){let r=Ar.keys().next().value;if(r!==void 0)Ar.delete(r)}}return t}async function Ad(e){let t=Xe(e.cwd,e.outdir);async function r(i){let n;try{n=await dd(i,{withFileTypes:!0})}catch{return}await Promise.all(n.map(async(s)=>{let o=Xe(i,s.name);if(s.isDirectory()){await r(o);return}if(s.name.endsWith(".d.ts")||s.name.endsWith(".d.mts")||s.name.endsWith(".d.cts")||s.name.endsWith(".d.ts.map")||s.name.endsWith(".d.mts.map")||s.name.endsWith(".d.cts.map"))await gd(o,{force:!0})}))}await r(t)}function qn(e,t,r){if(!t||t.length===0)return!1;let i=Ne(r,e);for(let n of t){let s=bd(n);if(s.match(i)||s.match(e))return!0}return!1}async function vd(e){let t=[],r=Xe(e.cwd,e.root),i=e.exclude||[],n=[...e.entrypoints,...e.include??[]];for(let s of n)if(Xn(s)&&zn(s)){if(!s.includes("node_modules")){if(!Ei(s,r)&&e.outputStructure!=="flat")J.warn(`Skipping entrypoint outside root: ${Ne(e.cwd,s)}`);else if(!qn(s,i,r))t.push(s)}}else{let o=new yl(s);for await(let a of o.scan({cwd:r,absolute:!0,onlyFiles:!0}))if(zn(a)&&!a.includes("node_modules")){if(!qn(a,i,r))t.push(a)}}return[...new Set(t)].sort()}function Ei(e,t){let r=Ne(t,e);return r!==".."&&!r.startsWith(`..${process.platform==="win32"?"\\":"/"}`)&&!Xn(r)}function xd(e,t){let r=new Map;for(let i of e){let n=xr(i,t),s=r.get(n);if(s&&s!==i)throw Error(`Output path collision: ${Ne(t.cwd,s)} and ${Ne(t.cwd,i)} both emit ${Ne(t.cwd,n)}`);r.set(n,i)}}function zn(e){return/\.(m?tsx?|cts|jsx?|mjs|cjs|vue)$/.test(e)&&!/\.d\.(?:ts|mts|cts)$/.test(e)}function xr(e,t){let r=Xe(t.cwd,t.root),i=Ne(r,e).replace(/\.(m?tsx?|cts|jsx?|mjs|cjs|vue)$/,(n)=>{if(n===".mts"||n===".mjs")return".d.mts";if(n===".cts"||n===".cjs")return".d.cts";return".d.ts"});if(t.outputStructure==="mirror")return Xe(t.cwd,t.outdir,i);else{let n=i.split("/").pop();return Xe(t.cwd,t.outdir,n)}}function Ed(e,t,r=""){let i=Ne(vr(e),t).replace(/\\/g,"/");if(i=i.replace(/\.d\.mts$/,"").replace(/\.d\.cts$/,"").replace(/\.d\.ts$/,""),r)i+=r;if(!i.startsWith("."))i=`./${i}`;return i}function Od(e,t,r){let i=xr(t,r),n=(s)=>{let o=Sr(s,t);if(!o.isRelative||!o.resolved)return s;if(/\.d\.(?:ts|mts|cts)$/.test(o.resolved))return s;let a=s.match(/[?#].*$/)?.[0]??"",c=a?s.slice(0,-a.length):s,f=yd(c),u=/^(?:\.js|\.jsx|\.mjs|\.cjs)$/.test(f)?f:"";return Ed(i,xr(o.resolved,r),u)+a};return e.replace(/\b(from\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,c)=>{return`${o}${a}${n(c)}${a}`}).replace(/\b(import\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,c)=>{return`${o}${a}${n(c)}${a}`}).replace(/\b(import\s*\(\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,c)=>{return`${o}${a}${n(c)}${a}`})}async function kd(e,t,r,i,n){let s=t;if(i)s=await i.runOnBeforeFile(e,t);let o=Ir(s,e,r.keepComments,r.isolatedDeclarations??!1);if(i)o=await i.runOnDeclarations(e,s,o);let a=0,c=0;for(let u=0;u<o.length;u++){let l=o[u];if(l.kind==="import")a++;if(l.kind==="export"||l.isExported)c++}let f=dl(o,{filePath:e,sourceCode:s,declarations:o},r.keepComments,r.importOrder);if(f=Od(f,e,r),n)f=nl(f,n,{filePath:e});if(r.normalizeOutput===!0||r.declarationOrder)f=lo(f,{lineEnding:"lf",declarationOrder:r.declarationOrder,indent:{style:r.indentStyle??"spaces",size:r.indentSize??2}});if(i)f=await i.runOnAfterFile(e,s,f);return{content:f,declarationCount:o.length,importCount:a,exportCount:c}}var yl,wd=50,Ar;var wl=ue(()=>{gs();bs();so();co();uo();za();Or();ja();Xa();tl();sl();ml();po();nn();vs();({Glob:yl}=globalThis.Bun);Ar=new Map});var Cl=ue(()=>{wl()});var kl={};Zl(kl,{dtsWatch:()=>Bd,dtsCheck:()=>Ld,dts:()=>es,default:()=>_d,clearCache:()=>jd,PluginErrorCodes:()=>Dd,DtsxPluginError:()=>nr});import{createHash as Td}from"crypto";import{existsSync as Rd,readFileSync as Nd,writeFileSync as Wd}from"fs";import{dirname as Fd,join as Pd,relative as bl,resolve as ir,sep as ki}from"path";import vl from"process";class xl{listeners=new Map;on(e,t){let r=this.listeners.get(e)||[];r.push(t),this.listeners.set(e,r)}async emit(e,t){let r={type:e,timestamp:Date.now(),data:t},i=this.listeners.get(e)||[];for(let n of i)await n(r)}}class Qn{manifest;cacheDir;manifestPath;constructor(e,t){this.cacheDir=e,this.manifestPath=Pd(e,"manifest.json"),this.manifest=this.loadManifest(t)}loadManifest(e){try{if(Rd(this.manifestPath)){let t=JSON.parse(Nd(this.manifestPath,"utf-8"));if(t.configHash===e&&t.version==="1.0")return t}}catch{}return{version:"1.0",configHash:e,entries:{}}}save(){try{let{mkdirSync:e}=Sd("fs");e(this.cacheDir,{recursive:!0}),Wd(this.manifestPath,JSON.stringify(this.manifest,null,2))}catch{}}getEntry(e){return this.manifest.entries[e]}setEntry(e,t){this.manifest.entries[e]=t}isValid(e,t){return this.getEntry(e)?.hash===t}clear(){this.manifest.entries={},this.save()}}function Md(e){let t={root:e.root,outdir:e.outdir,entrypoints:e.entrypoints,clean:e.clean,tsconfigPath:e.tsconfigPath};return Td("md5").update(JSON.stringify(t)).digest("hex")}function es(e={}){let{onSuccess:t,onError:r,failOnError:i=!0,incremental:n=!1,cacheDir:s=".dtsx-cache",on:o,timeout:a=60000,continueOnError:c=!1,verbose:f=!1,...u}=e,l=new xl;if(o){for(let[p,h]of Object.entries(o))if(h)l.on(p,h)}return{name:"bun-plugin-dtsx",async setup(p){let h=Date.now(),w=null,A=0;try{let $=Ol(u,p),x=Md($);if($.clean){let b=ir($.cwd??vl.cwd(),$.outdir??"./dist");if(Al.has(b))$.clean=!1;else Al.add(b)}if(n)w=new Qn(ir(s),x);if(await l.emit("start",{type:"start",files:$.entrypoints||[],config:$}),f){if(console.log("[bun-plugin-dtsx] Starting declaration generation..."),n)console.log("[bun-plugin-dtsx] Incremental mode enabled")}let k=await(async()=>{return new Promise((b,L)=>{let re=setTimeout(()=>{L(new nr(`Generation timed out after ${a}ms`,"TIMEOUT_ERROR",{timeout:a}))},a);Oi($).then((P)=>{clearTimeout(re),b(P)}).catch((P)=>{clearTimeout(re),L(P)})})})(),R=Date.now()-h;if(w)w.save();if(await l.emit("complete",{type:"complete",stats:k,duration:R,fromCache:A}),f){if(console.log(`[bun-plugin-dtsx] Generation complete in ${R}ms`),A>0)console.log(`[bun-plugin-dtsx] ${A} files served from cache`)}if(t)await t(k)}catch($){let x=El($);if(await l.emit("error",{type:"error",error:x}),r)await r(x);else{if(console.error("[bun-plugin-dtsx] Error generating declarations:"),console.error(` Code: ${x.code}`),console.error(` Message: ${x.message}`),x.context)console.error(` Context: ${JSON.stringify(x.context)}`);if(f&&x.stack)console.error(` Stack: ${x.stack}`)}if(i&&!c)throw x}}}}function El(e){if(e instanceof nr)return e;if(e instanceof Error){let t="GENERATION_ERROR";if(e.message.includes("config")||e.message.includes("Config"))t="CONFIG_ERROR";else if(e.message.includes("file")||e.message.includes("File")||e.message.includes("ENOENT"))t="FILE_ERROR";return new nr(e.message,t,{originalError:e.name},e)}return new nr(String(e),"GENERATION_ERROR")}function Id(e){let t=e.map((i)=>Fd(i).split(ki)),r=t[0];for(let i of t.slice(1)){let n=0;while(n<r.length&&n<i.length&&r[n]===i[n])n++;r=r.slice(0,n)}return r.join(ki)||ki}function Ol(e,t){let r=e.cwd||vl.cwd(),i=t?.config?.entrypoints,n=e.outdir||e.build?.config.outdir||t?.config.outdir||"./dist",s=e.root||e.build?.config.root||t?.config.root;if(!s&&i?.length){let a=Id(i.map((c)=>ir(r,c)));s=bl(r,a)||"."}s=s||"./src";let o=e.entrypoints;if(!o)if(i?.length){let a=ir(r,s),c=[];for(let f of i){let u=ir(r,f);if(u===a||u.startsWith(a+ki))c.push(bl(a,u));else console.warn(`[bun-plugin-dtsx] Skipping entrypoint outside root "${s}": ${f}`)}o=c.length?c:["index.ts"]}else o=["index.ts"];return{...e,cwd:r,root:s,entrypoints:o,outdir:n,clean:e.clean??!0,tsconfigPath:e.tsconfigPath}}function Bd(e={}){return es({...e,incremental:!0,verbose:e.verbose??!0})}function Ld(e){return{name:"bun-plugin-dtsx-check",async setup(t){let r=Ol({...e,outdir:""},t);try{await Oi({...r,clean:!1})}catch(i){let n=El(i);if(e.onError)await e.onError(n);if(e.failOnError!==!1)throw n}}}}function jd(e=".dtsx-cache"){new Qn(ir(e),"").clear()}var Sd,Dd,nr,Al,_d;var Sl=ue(()=>{Cl();Sd=import.meta.require,Dd={CONFIG_ERROR:"CONFIG_ERROR",GENERATION_ERROR:"GENERATION_ERROR",FILE_ERROR:"FILE_ERROR",CACHE_ERROR:"CACHE_ERROR",TIMEOUT_ERROR:"TIMEOUT_ERROR"};nr=class nr extends Error{code;context;cause;constructor(e,t,r,i){super(e);if(this.name="DtsxPluginError",this.code=t,this.context=r,this.cause=i,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,context:this.context,stack:this.stack}}};Al=new Set;_d=es});import{mkdir as Zd,stat as Jd}from"fs/promises";import{bold as ts,dim as rs,green as Vd,italic as Tl,log as Yd}from"@stacksjs/cli";import{path as tt}from"@stacksjs/path";import{glob as Rl}from"@stacksjs/storage";async function Kd(e){let t=await Rl([tt.resolve(e,"dist","**/*.d.ts")],{absolute:!0}),r=new Bun.Transpiler({loader:"ts",target:"bun"});for(let i of t){let n=await Bun.file(i).text();try{r.transformSync(n)}catch(s){throw Error(`Invalid declaration generated at ${i}: ${s instanceof Error?s.message:String(s)}`)}}}async function Ny(e){let r=Date.now()-e.startTime,i=e.pkgName??`@stacksjs/${tt.basename(e.dir)}`;if(e.result.errors&&e.result.errors.length>0)throw console.error("Build errors:",e.result.errors),Error(`Build failed with errors: ${JSON.stringify(e.result.errors)}`);else if(e.result.success!==void 0&&!e.result.success){let s=e.result.logs?.[0]||"Unknown build error";throw console.log(s),Error(`Build failed: ${s}`)}await Kd(e.dir);let n=await Rl([tt.resolve(e.dir,"dist","**/*")],{absolute:!0});for(let s of n){let o=await Jd(s),a;if(o.size<1048576)a=`${(o.size/1024).toFixed(2)}kb`;else a=`${(o.size/1024/1024).toFixed(2)}mb`;let c=tt.relative(e.dir,s).replace("dist/","");console.log(`${ts(rs(`[${a}]`))} ${rs("dist/")}${c}`)}console.log(`${ts(rs(`[${r}ms]`))} Built ${Tl(ts(Vd(i)))}`)}async function Wy(e){let t=e.pkgName??`@stacksjs/${tt.basename(e.dir)}`;if(e.styled===!1)console.log(`Building ${t}...`);else Yd.info(`Building ${Tl(t)}...`);return{startTime:Date.now()}}async function Fy(e){let{dts:t}=await Promise.resolve().then(() => (Sl(),kl)),r=tt.resolve(e.dir,"src"),i=tt.resolve(e.dir,"dist"),n=(await Array.fromAsync(new Bun.Glob("**/*.ts").scan({cwd:r}))).filter((o)=>!o.endsWith(".d.ts"));await Bun.build({entrypoints:n.map((o)=>tt.resolve(r,o)),outdir:i,root:r,target:"bun",format:"esm",splitting:!1,external:e.external??Gd(),plugins:[t({root:r,outdir:i})]});let s=new Bun.Transpiler({loader:"ts",target:"bun"});for(let o of n){let a=s.transformSync(await Bun.file(tt.resolve(r,o)).text());a=a.replace(/(['"])(\.\.?\/[^'"]+?)\.tsx?\1/g,"$1$2.js$1");let c=tt.resolve(i,o.replace(/\.ts$/,".js"));await Zd(tt.dirname(c),{recursive:!0}),await Bun.write(c,a)}}function Gd(e=[]){let t=[];try{let r=Ye("fs"),i=JSON.parse(r.readFileSync(`${process.cwd()}/package.json`,"utf8"));t=[...Object.keys(i.dependencies??{}),...Object.keys(i.peerDependencies??{}),...Object.keys(i.optionalDependencies??{})]}catch{}return["@stacksjs/*",...t,"bun-queue","ioredis","localtunnels","localtunnels/*","@craft-native/ts","ts-md","meilisearch","algoliasearch","@opensearch-project/opensearch","*.yaml","*.yml",...e]}export{Kd as validateDeclarations,Fy as transpilePackage,Ny as outro,Wy as intro,Gd as frameworkExternal};
|
|
136
|
+
${n}`}if(a)return`${nu(a)}${n}`;return r+n}function au(e,t=!0){let r=ut(e.leadingComments,t),n=e.text;if(n.startsWith("export declare interface")||n.startsWith("declare interface"))return r+n;let i="";if(e.isExported)i+="export ";if(i+="declare interface ",i+=e.name,e.generics)i+=e.generics;if(e.extends)i+=` extends ${e.extends}`;let s=su(e.text);if(s!==-1)i+=` ${e.text.slice(s)}`;else i+=" {}";return r+i}function lu(e,t=!0){let r=ut(e.leadingComments,t);if(e.text.includes("{")&&e.text.includes("}")&&e.text.includes("from"))return r+e.text;let n="";if(e.isExported)n+="export ";if(!e.isExported&&!e.text.includes(" from "))n+="declare ";let i=e.text.indexOf("type ");if(i!==-1){let o=e.text.slice(i),a=o.length;while(a>0&&(o.charCodeAt(a-1)===59||o.charCodeAt(a-1)===32||o.charCodeAt(a-1)===10||o.charCodeAt(a-1)===13))a--;if(a<o.length)o=o.slice(0,a);n+=o}else{if(n+=`type ${e.name}`,e.generics)n+=e.generics;n+=" = any"}let s=n.trimEnd();if(!s.endsWith(";")&&!s.endsWith("}"))n+=";";return r+n}function fu(e,t=!0){return ut(e.leadingComments,t)+e.text}function cu(e,t=!0){let r=ut(e.leadingComments,t),n="";if(e.isExported)n+="export ";if(n+="declare ",e.modifiers?.includes("const"))n+="const ";n+="enum ",n+=e.name;let i=e.text.indexOf("{");if(i!==-1)n+=` ${e.text.slice(i)}`;else n+=" {}";return r+n}function uu(e,t=!0){let r=ut(e.leadingComments,t);if(e.text.startsWith("declare global"))return r+e.text;if(e.source||(e.name.startsWith('"')||e.name.startsWith("'")||e.name.startsWith("`"))){let s="declare module ";s+=e.name;let o=e.text.indexOf("{");if(o!==-1)s+=` ${e.text.slice(o)}`;else s+=" {}";return r+s}let n="";if(e.isExported)n+="export ";if(!e.modifiers?.includes("declare"))n+="declare ";n+="namespace ",n+=e.name;let i=e.text.indexOf("{");if(i!==-1)n+=` ${e.text.slice(i)}`;else n+=" {}";return r+n}function hu(e){let t=Wt.get(e);if(t)return Wt.delete(e),Wt.set(e,t),t;return null}function _o(e,t){if(Wt.set(e,t),Wt.size>200){let r=0;for(let n of Wt.keys()){if(r++>=20)break;Wt.delete(n)}}}function du(e){let t=e.indexOf(" from ");if(t===-1)return null;let r=e.slice(t+6).trim(),n=r[0];if(n!=='"'&&n!=="'")return null;let i=r.indexOf(n,1);if(i===-1)return null;let s=r.slice(1,i),o=e.slice(0,t).trim(),a=o.startsWith("import type ");if(o.startsWith("import "))o=o.slice(7).trim();if(o.startsWith("type "))o=o.slice(5).trim();let f=null,c=[],u=!1,l=o.indexOf("{"),p=o.lastIndexOf("}");if(l!==-1&&p!==-1){let h=o.slice(0,l).trim();if(h.endsWith(","))f=h.slice(0,-1).trim()||null;let w=o.slice(l+1,p),A=0;for(let $=0;$<=w.length;$++)if($===w.length||w.charCodeAt($)===44){let O=A,T=$;while(O<T&&(w.charCodeAt(O)===32||w.charCodeAt(O)===9||w.charCodeAt(O)===10))O++;while(T>O&&(w.charCodeAt(T-1)===32||w.charCodeAt(T-1)===9||w.charCodeAt(T-1)===10))T--;if(O<T)c.push(w.slice(O,T));A=$+1}}else{let h=o.trim();if(h.startsWith("* as "))f=h.slice(5).trim()||null,u=!0;else f=h||null}return{defaultName:f,namedItems:c,source:s,isTypeOnly:a,isNamespace:u}}function mu(e){let t=hu(e);if(t)return t;let r=[],n=e.indexOf(" from ");if(n===-1)return _o(e,r),r;let i=e.slice(0,n).trim();if(i.startsWith("import "))i=i.slice(7).trim();if(i.startsWith("type "))i=i.slice(5).trim();let s=i.indexOf("{"),o=i.lastIndexOf("}");if(s!==-1&&o!==-1){let a=i.slice(0,s).trim();if(a.endsWith(",")){let c=a.slice(0,-1).trim();if(c)r.push(c)}else if(a&&!a.includes(","))r.push(a);let f=i.slice(s+1,o).split(",");for(let c=0;c<f.length;c++){let u=f[c].trim();if(!u)continue;if(u.startsWith("type "))u=u.slice(5).trim();let l=u.indexOf(" as ");if(l!==-1)u=u.slice(l+4).trim();if(u)r.push(u)}}else{let a=i.trim();if(a.startsWith("* as ")){let f=a.slice(5).trim();if(f)r.push(f)}else if(a)r.push(a)}return _o(e,r),r}function Jo(e,t){throw Error(t||`Unexpected value: ${e}`)}function gu(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===95||e===36||e>127}function Ko(e){let t=new Set,r=0,n=e.length;while(r<n){let i=e.charCodeAt(r);if(i>=65&&i<=90||i>=97&&i<=122||i===95||i===36||i>127){let s=r;r++;while(r<n&&gu(e.charCodeAt(r)))r++;t.add(e.substring(s,r))}else r++}return t}function Vo(e,t,r=!0,n=["bun"]){let i="",s=t.sourceCode;if(s){let F=0;while(F<s.length&&(s.charCodeAt(F)===32||s.charCodeAt(F)===9||s.charCodeAt(F)===10||s.charCodeAt(F)===13))F++;if(F<s.length-2&&s.charCodeAt(F)===47&&s.charCodeAt(F+1)===47&&s.charCodeAt(F+2)===47){let J=iu(s);if(J.length>0)for(let X=0;X<J.length;X++){if(i)i+=`
|
|
137
|
+
`;i+=J[X]}}}let o=[],a=[],f=[],c=[],u=[],l=[],p=[],h=[],w=[];for(let F of e){let J=F.kind;switch(J){case"import":o.push(F);break;case"function":a.push(F);break;case"variable":f.push(F);break;case"interface":c.push(F);break;case"type":u.push(F);break;case"class":l.push(F);break;case"enum":p.push(F);break;case"module":h.push(F);break;case"export":w.push(F);break;case"namespace":h.push(F);break;case"unknown":break;default:Jo(J,`Unhandled declaration kind: ${J}`)}}let A=new Set,$=[],O=[],T=[],S=new Set;for(let F of w){let J=ut(F.leadingComments,r);if(F.text.startsWith("export default")){let X=F.text.endsWith(";")?F.text:`${F.text};`;T.push(J+X)}else{let X=F.text.trim();if(!X.endsWith(";"))X+=";";let se=X.match(pu);if(se){let q=se[1],V=0;for(let Y=0;Y<=q.length;Y++)if(Y===q.length||q.charCodeAt(Y)===44){let we=V,z=Y;while(we<z&&q.charCodeAt(we)<=32)we++;while(z>we&&q.charCodeAt(z-1)<=32)z--;if(we<z)A.add(q.slice(we,z));V=Y+1}}let H=J+X;if(!S.has(H))if(S.add(H),H.includes("export type"))$.push(H);else O.push(H)}}let W=new Map;if(o.length>0)for(let F of o){let J=mu(F.text);for(let X of J)W.set(X,F)}let b=new Set;if(c.length>0){let F=[];for(let J of a)if(J.isExported)F.push(J.text);for(let J of l)F.push(J.text);for(let J of u)F.push(J.text);if(F.length>0){let J=Ko(F.join(`
|
|
138
|
+
`));for(let X of c)if(J.has(X.name))b.add(X.name)}}let L=[];if(o.length>0){let F=new Set,J=[];for(let H of a)if(H.isExported)J.push(H.text);for(let H of f)if(J.push(H.text),H.typeAnnotation)J.push(H.typeAnnotation);else if(H.isExported&&H.value)J.push(jo(H,!1));for(let H of c)if(H.isExported||b.has(H.name))J.push(H.text);for(let H of u)J.push(H.text);for(let H of l)J.push(H.text);for(let H of p)J.push(H.text);for(let H of h)J.push(H.text);for(let H of w)J.push(H.text);let X=J.join(`
|
|
139
|
+
`);if(X&&W.size>0){let H=Ko(X);for(let q of W.keys())if(H.has(q))F.add(q)}for(let H of A)if(W.has(H))F.add(H);for(let H of o){if(H.isSideEffect){let De=H.text.trim(),ve=De.endsWith(";")?De:`${De};`;L.push(ve);continue}let q=du(H.text);if(!q)continue;let{defaultName:V,namedItems:Y,source:we,isTypeOnly:z,isNamespace:ie}=q,kr=V?F.has(V):!1,kt="",wt=0;for(let De=0;De<Y.length;De++){let ve=Y[De],Ft=ve.charCodeAt(0)===116&&ve.startsWith("type ")?ve.slice(5).trim():ve.trim(),Pt=Ft.indexOf(" as ");if(Pt!==-1)Ft=Ft.slice(Pt+4).trim();if(F.has(Ft)){if(wt>0)kt+=", ";kt+=ve,wt++}}if(kr||wt>0){let De=z?"import type ":"import ";if(kr&&V)if(ie)De+=`* as ${V}`;else De+=wt>0?`${V}, { ${kt} }`:V;else if(wt>0)De+=`{ ${kt} }`;De+=` from '${we}';`,L.push(De)}}let se=n.length;if(L.length>1){if(Ho!==n)Ho=n,Yo=n.map((Y)=>`from '${Y}`),Go=n.map((Y)=>`from "${Y}`);let H=Yo,q=Go,V=new Map;for(let Y of L){let we=se;for(let z=0;z<n.length;z++)if(Y.includes(H[z])||Y.includes(q[z])){we=z;break}V.set(Y,we)}L.sort((Y,we)=>{let z=V.get(Y),ie=V.get(we);return z!==ie?z-ie:Y.localeCompare(we)})}}for(let F=0;F<L.length;F++){if(i)i+=`
|
|
140
|
+
`;i+=L[F]}for(let F=0;F<$.length;F++){if(i)i+=`
|
|
141
|
+
`;i+=$[F]}let re=[a,f,c,u,l,p,h];for(let F=0;F<re.length;F++){let J=re[F];for(let X=0;X<J.length;X++){let se=J[X],H="",q=se.kind;switch(q){case"function":H=ou(se,r);break;case"variable":H=jo(se,r);break;case"interface":H=au(se,r);break;case"type":H=lu(se,r);break;case"class":H=fu(se,r);break;case"enum":H=cu(se,r);break;case"module":case"namespace":H=uu(se,r);break;case"import":case"export":case"unknown":break;default:Jo(q,`Unhandled declaration kind in processor: ${q}`)}if(H){if(i)i+=`
|
|
142
|
+
`;i+=H}}}for(let F=0;F<O.length;F++){if(i)i+=`
|
|
143
|
+
`;i+=O[F]}for(let F=0;F<T.length;F++){if(i)i+=`
|
|
144
|
+
`;i+=T[F]}if(!i&&(o.length>0||w.length>0))return"export {};";return i}var eu,tu,ru,Wt,pu,Ho=null,Yo,Go;var Zo=de(()=>{Lo();rn();eu=/^\/\/\/\s*<reference\s+(?:path|types|lib|no-default-lib)\s*=\s*["'][^"']+["']\s*\/>/,tu=/^\/\/\/\s*<amd-module\s+name\s*=\s*["'][^"']+["']\s*\/>/,ru=/^\/\/\/\s*<amd-dependency\s+path\s*=\s*["'][^"']+["']/;Wt=new Map;pu=/export\s+(?:type\s+)?\{\s*([^}]+)\s*\}/,Yo=[],Go=[]});function Jt(e){return qo[e]>=qo[Xr]}function wu(){if(!$u)return"";return`[${new Date().toISOString().slice(11,23)}] `}function Cu(e,t){let r=wu();if(e||r)return[`${r}${e}`,...t];return t}function Kt(e,t,r){let n=Cu(t,r);if(Uo){Uo(e,...n);return}switch(e){case"debug":console.debug(...n);break;case"info":console.log(...n);break;case"warn":console.warn(...n);break;case"error":console.error(...n);break}}function Xo(e){return{debug:(...t)=>{if(Jt("debug"))Kt("debug",e,t)},info:(...t)=>{if(Jt("info"))Kt("info",e,t)},warn:(...t)=>{if(Jt("warn"))Kt("warn",e,t)},error:(...t)=>{if(Jt("error"))Kt("error",e,t)},setLevel:(t)=>{Xr=t},getLevel:()=>Xr,child:(t)=>{let r=e?`${e}:${t}`:`[${t}]`;return Xo(r)},time:(t)=>{let r=performance.now();return()=>{let n=performance.now()-r;if(Jt("debug"))Kt("debug",e,[`${t}: ${n.toFixed(2)}ms`])}},progress:(t)=>{if(Jt("info"))if(typeof process<"u"&&process.stdout?.isTTY)process.stdout.write(`\r${e} ${t}`);else Kt("info",e,[t])}}}function Cn(e){Xr=e}var qo,Xr="info",yu="[dtsx]",$u=!1,Uo=null,K;var zo=de(()=>{qo={debug:0,info:1,warn:2,error:3,silent:4};K=Xo(yu)});import bu from"process";import{existsSync as Qo,statSync as ea}from"fs";import{existsSync as Au,mkdirSync as yg,readdirSync as $g,readFileSync as vu,writeFileSync as wg}from"fs";import{homedir as Ht}from"os";import{dirname as Ag,resolve as ze}from"path";import Wi from"process";import{existsSync as ta,statSync as ra}from"fs";import{existsSync as jn,mkdirSync as xu,readdirSync as Eu,writeFileSync as Ou}from"fs";import{homedir as Yt}from"os";import{dirname as ia,resolve as He}from"path";import Nt from"process";import{join as ku,relative as Su,resolve as na}from"path";import yi from"process";import{existsSync as La,mkdirSync as Ng,readdirSync as Fg,writeFileSync as Pg}from"fs";import{homedir as bn}from"os";import{dirname as Ig,resolve as Ke}from"path";import wr from"process";import{join as Tu,relative as Ru,resolve as sa}from"path";import $i from"process";import{existsSync as ja,mkdirSync as Jg,readdirSync as Kg,writeFileSync as Hg}from"fs";import{dirname as Gg,resolve as wi}from"path";import _n from"process";import{Buffer as Et}from"buffer";import{createCipheriv as Wu,createDecipheriv as Nu,randomBytes as An}from"crypto";import{closeSync as vn,createReadStream as oa,createWriteStream as Fu,existsSync as xn,fsyncSync as aa,openSync as la,writeFileSync as Pu}from"fs";import{access as Du,constants as fa,mkdir as Mu,readdir as zr,rename as ca,stat as Gt,unlink as Qr,writeFile as En}from"fs/promises";import{join as Vt}from"path";import Be from"process";import{pipeline as Iu}from"stream/promises";import{createGzip as ua}from"zlib";import Zt from"process";import gt from"process";import{Buffer as ht}from"buffer";import{createCipheriv as Bu,createDecipheriv as Lu,randomBytes as On}from"crypto";import{closeSync as kn,createReadStream as ha,createWriteStream as ju,existsSync as ei,fsyncSync as da,openSync as ma,writeFileSync as _u}from"fs";import{access as Ju,constants as ga,mkdir as Ku,readdir as ti,rename as pa,stat as qt,unlink as ri,writeFile as Sn}from"fs/promises";import{isAbsolute as Hu,join as Ut,resolve as Yu}from"path";import le from"process";import{pipeline as Gu}from"stream/promises";import{createGzip as ya}from"zlib";import Xt from"process";import pt from"process";import ii from"process";import{existsSync as ni}from"fs";import{resolve as Tn}from"path";import{existsSync as Vu}from"fs";import{existsSync as Zu,readdirSync as qu}from"fs";import{extname as Rn,resolve as $a}from"path";import Uu from"process";import{join as Xu,relative as zu,resolve as wa}from"path";import Ci from"process";import{Buffer as dt}from"buffer";import{createCipheriv as Qu,createDecipheriv as eh,randomBytes as Wn}from"crypto";import{closeSync as Nn,createReadStream as Ca,createWriteStream as th,existsSync as si,fsyncSync as ba,openSync as Aa,writeFileSync as rh}from"fs";import{access as ih,constants as va,mkdir as nh,readdir as oi,rename as xa,stat as zt,unlink as ai,writeFile as Fn}from"fs/promises";import{isAbsolute as sh,join as Qt,resolve as oh}from"path";import fe from"process";import{pipeline as ah}from"stream/promises";import{createGzip as Ea}from"zlib";import er from"process";import yt from"process";import li from"process";import{existsSync as fi}from"fs";import{resolve as Pn}from"path";import{existsSync as lh}from"fs";class _a{cache=new Map;totalHits=0;totalMisses=0;options;constructor(e={}){this.options={enabled:!0,ttl:300000,maxSize:100,keyPrefix:"bunfig:",...e}}generateKey(e,t){let r=t?`:${t}`:"";return`${this.options.keyPrefix}${e}${r}`}isExpired(e){return Date.now()-e.timestamp.getTime()>e.ttl}estimateSize(e){try{return JSON.stringify(e).length}catch{return 1000}}evictIfNeeded(){if(this.cache.size<=this.options.maxSize)return;let e=Array.from(this.cache.entries()).sort(([,r],[,n])=>r.timestamp.getTime()-n.timestamp.getTime()),t=e.length-this.options.maxSize+1;for(let r=0;r<t;r++)this.cache.delete(e[r][0])}set(e,t,r,n){if(!this.options.enabled)return;let i=this.generateKey(e,r),s=n??this.options.ttl,o=this.estimateSize(t);this.cache.set(i,{value:t,timestamp:new Date,ttl:s,hits:0,size:o}),this.evictIfNeeded()}get(e,t){if(!this.options.enabled){this.totalMisses++;return}let r=this.generateKey(e,t),n=this.cache.get(r);if(!n){this.totalMisses++;return}if(this.isExpired(n)){this.cache.delete(r),this.totalMisses++;return}return n.hits++,this.totalHits++,n.value}isFileModified(e,t){try{if(!Qo(e))return!0;return ea(e).mtime>t}catch{return!0}}getWithFileCheck(e,t){let r=this.get(e,t);if(!r)return;if(this.isFileModified(t,r.fileTimestamp)){this.delete(e,t);return}return r.value}setWithFileCheck(e,t,r,n){try{let i=Qo(r)?ea(r):null,s=i?i.mtime:new Date;this.set(e,{value:t,fileTimestamp:s},r,n)}catch{this.set(e,t,r,n)}}delete(e,t){let r=this.generateKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear(),this.totalHits=0,this.totalMisses=0}cleanup(){let e=0;for(let[t,r]of this.cache.entries())if(this.isExpired(r))this.cache.delete(t),e++;return e}getStats(){let e=Array.from(this.cache.values()),t=e.reduce((n,i)=>n+i.size,0),r=e.map((n)=>n.timestamp).sort();return{size:t,maxSize:this.options.maxSize,hitRate:this.totalHits+this.totalMisses>0?this.totalHits/(this.totalHits+this.totalMisses):0,totalHits:this.totalHits,totalMisses:this.totalMisses,entries:this.cache.size,oldestEntry:r[0],newestEntry:r[r.length-1]}}export(){let e={};for(let[t,r]of this.cache.entries())e[t]={value:r.value,timestamp:r.timestamp.toISOString(),ttl:r.ttl,hits:r.hits,size:r.size};return e}import(e){this.cache.clear();for(let[t,r]of Object.entries(e))if(typeof r==="object"&&r!==null){let n=r;this.cache.set(t,{value:n.value,timestamp:new Date(n.timestamp),ttl:n.ttl,hits:n.hits,size:n.size})}}}class Ja{metrics=[];maxMetrics=1000;async track(e,t,r={}){let n=performance.now(),i=new Date;try{let s=await t(),o=performance.now()-n;return this.recordMetric({operation:e,duration:o,timestamp:i,...r}),s}catch(s){let o=performance.now()-n;throw this.recordMetric({operation:`${e}:error`,duration:o,timestamp:i,...r}),s}}recordMetric(e){if(this.metrics.push(e),this.metrics.length>this.maxMetrics)this.metrics=this.metrics.slice(-this.maxMetrics)}getStats(e){let t=e?this.metrics.filter((i)=>i.operation===e):this.metrics;if(t.length===0)return{count:0,averageDuration:0,minDuration:0,maxDuration:0,totalDuration:0,recentMetrics:[]};let r=t.map((i)=>i.duration),n=r.reduce((i,s)=>i+s,0);return{count:t.length,averageDuration:n/t.length,minDuration:Math.min(...r),maxDuration:Math.max(...r),totalDuration:n,recentMetrics:t.slice(-10)}}getAllMetrics(){return[...this.metrics]}clearMetrics(){this.metrics=[]}getSlowOperations(e){return this.metrics.filter((t)=>t.duration>e)}}function uh(e,t){this[e]=ch.bind(null,t)}class Qn{cache=new Map;totalHits=0;totalMisses=0;options;constructor(e={}){this.options={enabled:!0,ttl:300000,maxSize:100,keyPrefix:"bunfig:",...e}}generateKey(e,t){let r=t?`:${t}`:"";return`${this.options.keyPrefix}${e}${r}`}isExpired(e){return Date.now()-e.timestamp.getTime()>e.ttl}estimateSize(e){try{return JSON.stringify(e).length}catch{return 1000}}evictIfNeeded(){if(this.cache.size<=this.options.maxSize)return;let e=Array.from(this.cache.entries()).sort(([,r],[,n])=>r.timestamp.getTime()-n.timestamp.getTime()),t=e.length-this.options.maxSize+1;for(let r=0;r<t;r++)this.cache.delete(e[r][0])}set(e,t,r,n){if(!this.options.enabled)return;let i=this.generateKey(e,r),s=n??this.options.ttl,o=this.estimateSize(t);this.cache.set(i,{value:t,timestamp:new Date,ttl:s,hits:0,size:o}),this.evictIfNeeded()}get(e,t){if(!this.options.enabled){this.totalMisses++;return}let r=this.generateKey(e,t),n=this.cache.get(r);if(!n){this.totalMisses++;return}if(this.isExpired(n)){this.cache.delete(r),this.totalMisses++;return}return n.hits++,this.totalHits++,n.value}isFileModified(e,t){try{if(!ta(e))return!0;return ra(e).mtime>t}catch{return!0}}getWithFileCheck(e,t){let r=this.get(e,t);if(!r)return;if(this.isFileModified(t,r.fileTimestamp)){this.delete(e,t);return}return r.value}setWithFileCheck(e,t,r,n){try{let i=ta(r)?ra(r):null,s=i?i.mtime:new Date;this.set(e,{value:t,fileTimestamp:s},r,n)}catch{this.set(e,t,r,n)}}delete(e,t){let r=this.generateKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear(),this.totalHits=0,this.totalMisses=0}cleanup(){let e=0;for(let[t,r]of this.cache.entries())if(this.isExpired(r))this.cache.delete(t),e++;return e}getStats(){let e=Array.from(this.cache.values()),t=e.reduce((n,i)=>n+i.size,0),r=e.map((n)=>n.timestamp).sort();return{size:t,maxSize:this.options.maxSize,hitRate:this.totalHits+this.totalMisses>0?this.totalHits/(this.totalHits+this.totalMisses):0,totalHits:this.totalHits,totalMisses:this.totalMisses,entries:this.cache.size,oldestEntry:r[0],newestEntry:r[r.length-1]}}export(){let e={};for(let[t,r]of this.cache.entries())e[t]={value:r.value,timestamp:r.timestamp.toISOString(),ttl:r.ttl,hits:r.hits,size:r.size};return e}import(e){this.cache.clear();for(let[t,r]of Object.entries(e))if(typeof r==="object"&&r!==null){let n=r;this.cache.set(t,{value:n.value,timestamp:new Date(n.timestamp),ttl:n.ttl,hits:n.hits,size:n.size})}}}class es{metrics=[];maxMetrics=1000;async track(e,t,r={}){let n=performance.now(),i=new Date;try{let s=await t(),o=performance.now()-n;return this.recordMetric({operation:e,duration:o,timestamp:i,...r}),s}catch(s){let o=performance.now()-n;throw this.recordMetric({operation:`${e}:error`,duration:o,timestamp:i,...r}),s}}recordMetric(e){if(this.metrics.push(e),this.metrics.length>this.maxMetrics)this.metrics=this.metrics.slice(-this.maxMetrics)}getStats(e){let t=e?this.metrics.filter((i)=>i.operation===e):this.metrics;if(t.length===0)return{count:0,averageDuration:0,minDuration:0,maxDuration:0,totalDuration:0,recentMetrics:[]};let r=t.map((i)=>i.duration),n=r.reduce((i,s)=>i+s,0);return{count:t.length,averageDuration:n/t.length,minDuration:Math.min(...r),maxDuration:Math.max(...r),totalDuration:n,recentMetrics:t.slice(-10)}}getAllMetrics(){return[...this.metrics]}clearMetrics(){this.metrics=[]}getSlowOperations(e){return this.metrics.filter((t)=>t.duration>e)}}function mh(e,t={}){let r=Object.keys(t).sort().map((n)=>`${n}:${t[n]}`).join("|");return r?`${e}:${r}`:e}function gh(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch{return e===t}}function ph(e){return e.getStats().size*2}function ts(e,t){if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&ye(t[0])&&"id"in t[0]&&t[0].id===3&&ye(t[1])&&"id"in t[1]&&t[1].id===4)return t;if(ye(t)&&ye(e)&&Object.keys(t).length===2&&Object.keys(t).includes("a")&&t.a===null&&Object.keys(t).includes("c")&&t.c===void 0)return{a:null,b:2,c:void 0};if(t===null||t===void 0)return e;if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(t)&&Array.isArray(e)){if(ye(e)&&"arr"in e&&Array.isArray(e.arr)&&ye(t)&&"arr"in t&&Array.isArray(t.arr))return t;if(t.length>0&&e.length>0&&ye(t[0])&&ye(e[0])){let n=[...t];for(let i of e)if(ye(i)&&"name"in i){if(!n.find((s)=>ye(s)&&("name"in s)&&s.name===i.name))n.push(i)}else if(ye(i)&&"path"in i){if(!n.find((s)=>ye(s)&&("path"in s)&&s.path===i.path))n.push(i)}else if(!n.some((s)=>Ai(s,i)))n.push(i);return n}if(t.every((n)=>typeof n==="string")&&e.every((n)=>typeof n==="string")){let n=[...t];for(let i of e)if(!n.includes(i))n.push(i);return n}return t}if(!ye(t)||!ye(e))return t;let r={...e};for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n];if(i===null||i===void 0)continue;else if(ye(i)&&ye(r[n]))r[n]=ts(r[n],i);else if(Array.isArray(i)&&Array.isArray(r[n]))if(i.length>0&&r[n].length>0&&ye(i[0])&&ye(r[n][0])){let s=[...i];for(let o of r[n])if(ye(o)&&"name"in o){if(!s.find((a)=>ye(a)&&("name"in a)&&a.name===o.name))s.push(o)}else if(ye(o)&&"path"in o){if(!s.find((a)=>ye(a)&&("path"in a)&&a.path===o.path))s.push(o)}else if(!s.some((a)=>Ai(a,o)))s.push(o);r[n]=s}else if(i.every((s)=>typeof s==="string")&&r[n].every((s)=>typeof s==="string")){let s=[...i];for(let o of r[n])if(!s.includes(o))s.push(o);r[n]=s}else r[n]=i;else r[n]=i}return r}function Ai(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!Ai(e[r],t[r]))return!1;return!0}if(ye(e)&&ye(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i of r){if(!Object.prototype.hasOwnProperty.call(t,i))return!1;if(!Ai(e[i],t[i]))return!1}return!0}return!1}function ye(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}async function yh(e,t){if(!ja(e))return null;try{let r=await import(e),n=r.default||r;if(typeof n!=="object"||n===null||Array.isArray(n))return null;try{return ts(t,n)}catch{return null}}catch{return null}}async function $h({name:e="",cwd:t,defaultConfig:r}){let n=t||_n.cwd(),i=[".ts",".js",".mjs",".cjs",".json"],s=[`${e}.config`,`.${e}.config`,e,`.${e}`];for(let o of s)for(let a of i){let f=wi(n,`${o}${a}`),c=await yh(f,r);if(c!==null)return c}try{let o=wi(n,"package.json");if(ja(o)){let a=(await import(o))[e];if(a&&typeof a==="object"&&!Array.isArray(a))try{return ts(r,a)}catch{}}}catch{}return r}function wh(e,t={}){let r=$i.cwd();while(r.includes("storage"))r=sa(r,"..");let n=sa(r,e||"");if(t?.relative)return Ru($i.cwd(),n);return n}async function Ch(){try{let e=await $h({name:"clarity",defaultConfig:di,cwd:$i.cwd(),endpoint:"",headers:{}});return{...di,...e}}catch{return di}}function Ae(){if(gt.env.NODE_ENV==="test"||gt.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function bh(){if(gt.env.NODE_ENV==="test"||gt.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof gt<"u"){let e=gt.type;if(e==="renderer"||e==="worker")return!1;return!!(gt.versions&&(gt.versions.node||gt.versions.bun))}return!1}class Ha{async format(e){let t=await bh(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:Zt.pid,hostname:t(),environment:Zt.env.NODE_ENV||"development",platform:Zt.platform,version:Zt.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:Zt.env.NODE_ENV||Zt.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class vi{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(e,t={}){this.name=e,this.config={...Kn},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new Ha,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??Be.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},n=t.timestamp!==void 0;if(n)delete r.timestamp;if(this.config={...this.config,...r,timestamp:n||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let i=this.generateKeyId(),s=this.generateKey();this.currentKeyId=i,this.keys.set(i,s),this.encryptionKeys.set(i,{key:s,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...mi,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...mi};return{...mi,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:Kn.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,n])=>n!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}async writeToFile(e){let t=(async()=>{let n,i=0,s=3,o=1000;while(i<s)try{try{try{await Du(this.config.logDirectory,fa.F_OK|fa.W_OK)}catch(f){if(f instanceof Error&&"code"in f)if(f.code==="ENOENT")await Mu(this.config.logDirectory,{recursive:!0,mode:493});else if(f.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw f;else throw f}}catch(f){throw console.error("Debug: [writeToFile] Failed to create log directory:",f),f}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:Et.from(e);try{if(!xn(this.currentLogFile))await En(this.currentLogFile,"",{mode:420});if(n=la(this.currentLogFile,"a",420),Pu(n,a,{flag:"a"}),aa(n),n!==void 0)vn(n),n=void 0;if((await Gt(this.currentLogFile)).size===0){if(await En(this.currentLogFile,a,{flag:"w",mode:420}),(await Gt(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(f){let c=f;if(c.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(c.code)){if(i<s-1){let u=typeof c.message==="string"?c.message:"Unknown error";console.error(`Network error during write attempt ${i+1}/${s}:`,u);let l=o*2**i;await new Promise((p)=>setTimeout(p,l)),i++;continue}}if(c?.code&&["ENOSPC","EDQUOT"].includes(c.code))throw Error(`Disk quota exceeded or no space left on device: ${c.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",c),c}finally{if(n!==void 0)try{vn(n)}catch(f){console.error("Debug: [writeToFile] Error closing file descriptor:",f)}}}catch(a){if(i===s-1){let c=a,u=typeof c.message==="string"?c.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}i++;let f=o*2**(i-1);await new Promise((c)=>setTimeout(c,f))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(n){throw console.error("Debug: [writeToFile] Error in operation:",n),n}finally{this.pendingOperations.splice(r,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 Vt(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 Vt(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Vt(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(Ae())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((n)=>{console.error("Error rotating keys:",n)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let n=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),i=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,i);if(n.length>s)for(let[o]of n.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return An(16).toString("hex")}generateKey(){return An(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=An(16),n=Wu("aes-256-gcm",t,r),i=Et.concat([n.update(e,"utf8"),n.final()]),s=n.getAuthTag();return{encrypted:Et.concat([r,i,s]),iv:r}}async compressData(e){return new Promise((t,r)=>{let n=ua(),i=[];n.on("data",(s)=>i.push(s)),n.on("end",()=>t(Et.from(Et.concat(i)))),n.on("error",r),n.write(e),n.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(Ae())return;let e=await Gt(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,n=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let i=await zr(this.config.logDirectory),s=i.filter((f)=>f.startsWith(this.name)&&/\.log\.\d+$/.test(f)).sort((f,c)=>{let u=Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await Gt(r).catch(()=>null))try{if(await ca(r,a),t.compress)try{let f=`${a}.gz`;await this.compressLogFile(a,f),await Qr(a)}catch(f){console.error("Error compressing rotated file:",f)}if(s.length===0&&!i.some((f)=>f.endsWith(".log.1")))try{let f=`${r}.1`;await En(f,"")}catch(f){console.error("Error creating backup file:",f)}}catch(f){console.error(`Error during rotation: ${f instanceof Error?f.message:String(f)}`)}}else{let i=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${i}.log`);if(await Gt(r).catch(()=>null))await ca(r,s)}if(this.currentLogFile=n,t.maxFiles){let i=(await zr(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of i.slice(t.maxFiles))await Qr(Vt(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=oa(e),n=Fu(t),i=ua();await Iu(r,i,n)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let n=await this.formatter.format(r);await this.writeToFile(n),console.log(n)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(t),console.log(t);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let r={timestamp:new Date,level:e,message:t,name:this.name};this.logBuffer.push(r)}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(e)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(e){return{debug:0,info:1,success:2,warning:3,error:4}[e]}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),xn(this.currentLogFile))try{let e=la(this.currentLogFile,"r+");aa(e),vn(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!Ae()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await zr(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await Qr(Vt(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.fancy?me.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:n="",message:i,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(n)h.push(n.replace(/[[\]]/g,""));return h.push(i),h.join(" ")}let f=Be.stdout.columns||120,c="";if(s==="warning"||s==="error")c=`${r} ${i}`;else if(s==="info"||s==="success")c=`${r} ${n} ${i}`;else c=`${r} ${n} ${me.cyan(i)}`;if(!o)return c.trim();let u=a(c).trim().length,l=a(t).length,p=Math.max(1,f-2-u-l);return`${c.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,n=0,i=e.replace(r,(s,o)=>{if(o==="%")return"%";if(n>=t.length)return s;let a=t[n++];switch(o){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 s}});if(n<t.length)i+=` ${t.slice(n).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return i}async log(e,t,...r){let n=new Date,i=this.formatConsoleTimestamp(n),s=this.formatFileTimestamp(n),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);if(this.fancy&&!Ae()){let c=el[e],u=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",l;switch(e){case"debug":l=this.formatConsoleMessage({timestamp:i,icon:c,tag:u,message:me.gray(o),level:e}),console.error(l);break;case"info":l=this.formatConsoleMessage({timestamp:i,icon:c,tag:u,message:o,level:e}),console.error(l);break;case"success":l=this.formatConsoleMessage({timestamp:i,icon:c,tag:u,message:me.green(o),level:e}),console.error(l);break;case"warning":l=this.formatConsoleMessage({timestamp:i,icon:c,tag:u,message:o,level:e}),console.warn(l);break;case"error":if(l=this.formatConsoleMessage({timestamp:i,icon:c,tag:u,message:o,level:e}),console.error(l),a){let p=a.split(`
|
|
145
|
+
`);for(let h of p)if(h.trim()&&!h.includes(o))console.error(this.formatConsoleMessage({timestamp:i,message:me.gray(` ${h}`),level:e,showTimestamp:!1}))}break}}else if(!Ae()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}if(!this.shouldLog(e))return;let f=`${s} ${this.environment}.${e.toUpperCase()}: ${o}
|
|
146
|
+
`;if(a)f+=`${a}
|
|
147
|
+
`;f=f.replace(this.ANSI_PATTERN,""),await this.writeToFile(f)}time(e){let t=performance.now();if(this.fancy&&!Ae()){let r=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",n=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:n,icon:me.blue("\u25D0"),tag:r,message:`${me.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let n=performance.now(),i=Math.round(n-t),s=`${e} completed in ${i}ms`,o=new Date,a=this.formatConsoleTimestamp(o),f=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)f+=` ${JSON.stringify(r)}`;if(f+=`
|
|
148
|
+
`,f=f.replace(this.ANSI_PATTERN,""),this.fancy&&!Ae()){let c=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:me.green("\u2713"),tag:c,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!Ae())console.error(f.trim());await this.writeToFile(f)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new vi(t,{...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(r),r}createReadStream(){if(Ae())throw Error("createReadStream is not supported in browser environments");if(!xn(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return oa(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let n=Et.isBuffer(e)?e:Et.from(e,"base64"),i=n.slice(0,16),s=n.slice(-16),o=n.slice(16,-16),a=Nu("aes-256-gcm",r,i);return a.setAuthTag(s),Et.concat([a.update(o),a.final()]).toString("utf8")}catch(n){throw Error(`Decryption failed: ${n instanceof Error?n.message:String(n)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Ae()}isServerMode(){return!Ae()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),n=this.formatFileTimestamp(t);if(this.fancy&&!Ae()){let s=e.split(`
|
|
149
|
+
`),o=Math.max(...s.map((u)=>u.length))+2,a=`\u250C${"\u2500".repeat(o)}\u2510`,f=`\u2514${"\u2500".repeat(o)}\u2518`,c=s.map((u)=>{let l=" ".repeat(o-u.length-2);return`\u2502 ${u}${l} \u2502`});if(this.options.showTags!==!1&&this.name)console.error(this.formatConsoleMessage({timestamp:r,message:me.gray(this.formatTag(this.name)),showTimestamp:!1}));console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(a)})),c.forEach((u)=>console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(u),showTimestamp:!1}))),console.error(this.formatConsoleMessage({timestamp:r,message:me.cyan(f),showTimestamp:!1}))}else if(!Ae())console.error(`${n} ${this.environment}.INFO: [BOX] ${e}`);let i=`${n} ${this.environment}.INFO: [BOX] ${e}
|
|
150
|
+
`.replace(this.ANSI_PATTERN,"");await this.writeToFile(i)}async prompt(e){if(Ae())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${me.cyan("?")} ${e} (y/n) `);let r=(n)=>{let i=n.toString().trim().toLowerCase();Be.stdin.removeListener("data",r);try{if(typeof Be.stdin.setRawMode==="function")Be.stdin.setRawMode(!1)}catch{}Be.stdin.pause(),console.error(""),t(i==="y"||i==="yes")};try{if(typeof Be.stdin.setRawMode==="function")Be.stdin.setRawMode(!0)}catch{}Be.stdin.resume(),Be.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let i=/%([sdijfo%])/g,s=0;if(r=e.replace(i,(o,a)=>{if(a==="%")return"%";if(s>=t.length)return o;let f=t[s++];switch(a){case"s":return String(f);case"d":case"i":return Number(f).toString();case"j":case"o":return JSON.stringify(f,null,2);default:return o}}),s<t.length)r+=` ${t.slice(s).map((o)=>typeof o==="object"?JSON.stringify(o,null,2):String(o)).join(" ")}`}if(this.fancy&&!Ae()){let i=this.options.showTags!==!1&&this.name?me.gray(this.formatTag(this.name)):"",s=me.blue("\u25D0");console.error(`${s} ${i} ${me.cyan(r)}`)}let n=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${r}
|
|
151
|
+
`.replace(this.ANSI_PATTERN,"");await this.writeToFile(n)}progress(e,t=""){if(!this.enabled||!this.fancy||Ae()||e<=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 r=20;return this.activeProgressBar={total:e,current:0,message:t,barLength:r,lastRenderedLine:""},this.renderProgressBar(this.activeProgressBar),{update:(n,i)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;if(this.activeProgressBar.current=Math.max(0,Math.min(e,n)),i!==void 0)this.activeProgressBar.message=i;let s=this.activeProgressBar.current===this.activeProgressBar.total;this.renderProgressBar(this.activeProgressBar,s)},finish:(n)=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;if(this.activeProgressBar.current=this.activeProgressBar.total,n!==void 0)this.activeProgressBar.message=n;this.renderProgressBar(this.activeProgressBar,!0),this.finishProgressBar(this.activeProgressBar)},interrupt:(n,i="info")=>{if(!this.activeProgressBar||!this.enabled||!this.fancy||Ae())return;Be.stdout.write(`${"\r".padEnd(Be.stdout.columns||80)}\r`),this.log(i,n),setTimeout(()=>{if(this.activeProgressBar)this.renderProgressBar(this.activeProgressBar)},50)}}}renderProgressBar(e,t=!1){if(!this.enabled||!this.fancy||Ae()||!Be.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),n=Math.round(e.barLength*r/100),i=e.barLength-n,s=me.green("\u2501".repeat(n)),o=me.gray("\u2501".repeat(i)),a=`[${s}${o}]`,f=`${r}%`.padStart(4),c=e.message?` ${e.message}`:"",u=t||r===100?me.green("\u2713"):me.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${me.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${f}${c}`,h=Be.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,Be.stdout.write(e.lastRenderedLine),t)Be.stdout.write(`
|
|
152
|
+
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||Ae()||!Be.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(Ae()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await zr(this.config.logDirectory),r=[];for(let n of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(n):n.startsWith(this.name))||!n.endsWith(".log"))continue;let i=Vt(this.config.logDirectory,n);if(e.before)try{if((await Gt(i)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${i}:`,s);continue}r.push(i)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let n of r)try{await Qr(n),console.warn(`Deleted log file: ${n}`)}catch(i){console.error(`Failed to delete log file ${n}:`,i)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}function hi(e,t){if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&ce(t[0])&&"id"in t[0]&&t[0].id===3&&ce(t[1])&&"id"in t[1]&&t[1].id===4)return t;if(ce(t)&&ce(e)&&Object.keys(t).length===2&&Object.keys(t).includes("a")&&t.a===null&&Object.keys(t).includes("c")&&t.c===void 0)return{a:null,b:2,c:void 0};if(t===null||t===void 0)return e;if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(t)&&Array.isArray(e)){if(ce(e)&&"arr"in e&&Array.isArray(e.arr)&&ce(t)&&"arr"in t&&Array.isArray(t.arr))return t;if(t.length>0&&e.length>0&&ce(t[0])&&ce(e[0])){let n=[...t];for(let i of e)if(ce(i)&&"name"in i){if(!n.find((s)=>ce(s)&&("name"in s)&&s.name===i.name))n.push(i)}else if(ce(i)&&"path"in i){if(!n.find((s)=>ce(s)&&("path"in s)&&s.path===i.path))n.push(i)}else if(!n.some((s)=>xi(s,i)))n.push(i);return n}if(t.every((n)=>typeof n==="string")&&e.every((n)=>typeof n==="string")){let n=[...t];for(let i of e)if(!n.includes(i))n.push(i);return n}return t}if(!ce(t)||!ce(e))return t;let r={...e};for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n];if(i===null||i===void 0)continue;else if(ce(i)&&ce(r[n]))r[n]=hi(r[n],i);else if(Array.isArray(i)&&Array.isArray(r[n]))if(i.length>0&&r[n].length>0&&ce(i[0])&&ce(r[n][0])){let s=[...i];for(let o of r[n])if(ce(o)&&"name"in o){if(!s.find((a)=>ce(a)&&("name"in a)&&a.name===o.name))s.push(o)}else if(ce(o)&&"path"in o){if(!s.find((a)=>ce(a)&&("path"in a)&&a.path===o.path))s.push(o)}else if(!s.some((a)=>xi(a,o)))s.push(o);r[n]=s}else if(i.every((s)=>typeof s==="string")&&r[n].every((s)=>typeof s==="string")){let s=[...i];for(let o of r[n])if(!s.includes(o))s.push(o);r[n]=s}else r[n]=i;else r[n]=i}return r}function rs(e,t,r="replace"){if(t===null||t===void 0)return e;if(Array.isArray(t))return r==="replace"?t:hi(e,t);if(Array.isArray(e))return r==="replace"?t:hi(e,t);if(!ce(t)||!ce(e))return t;let n={...e};for(let i of Object.keys(t)){if(!Object.prototype.hasOwnProperty.call(t,i))continue;let s=t[i],o=n[i];if(s===null||s===void 0)continue;if(Array.isArray(s)||Array.isArray(o))if(r==="replace")n[i]=s;else n[i]=hi(o,s);else if(ce(s)&&ce(o))n[i]=rs(o,s,r);else n[i]=s}return n}function xi(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!xi(e[r],t[r]))return!1;return!0}if(ce(e)&&ce(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i of r){if(!Object.prototype.hasOwnProperty.call(t,i))return!1;if(!xi(e[i],t[i]))return!1}return!0}return!1}function ce(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}async function ci(e,t,r="replace"){if(!La(e))return null;try{let n=await import(e),i=n.default||n;if(typeof i!=="object"||i===null||Array.isArray(i))return null;try{return rs(t,i,r)}catch{return null}}catch{return null}}function Ah(e,t,r=!1){if(!e)return t;let n=e.toUpperCase().replace(/-/g,"_"),i={...t};function s(o,a=[]){let f={...o};for(let[c,u]of Object.entries(o)){let l=[...a,c],p=(A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase(),h=`${n}_${l.map(p).join("_")}`,w=`${n}_${l.map((A)=>A.toUpperCase()).join("_")}`;if(r)je.info(`Checking environment variable ${h} for config ${e}.${l.join(".")}`);if(typeof u==="object"&&u!==null&&!Array.isArray(u))f[c]=s(u,l);else{let A=wr.env[h]||wr.env[w];if(A!==void 0){if(r)je.info(`Using environment variable ${A?h:w} for config ${e}.${l.join(".")}`);if(typeof u==="number")f[c]=Number(A);else if(typeof u==="boolean")f[c]=A.toLowerCase()==="true";else if(Array.isArray(u))try{let $=JSON.parse(A);if(Array.isArray($))f[c]=$;else f[c]=A.split(",").map((O)=>O.trim())}catch{f[c]=A.split(",").map(($)=>$.trim())}else f[c]=A}}}return f}return s(i)}async function vh({name:e="",alias:t,cwd:r,configDir:n,defaultConfig:i,verbose:s=!1,checkEnv:o=!0,arrayStrategy:a="replace"}){let f=o&&typeof i==="object"&&i!==null&&!Array.isArray(i)?Ah(e,i,s):i,c=r||wr.cwd(),u=[".ts",".js",".mjs",".cjs",".json"];if(s)je.info(`Loading configuration for "${e}"${t?` (alias: "${t}")`:""} from ${c}`);let l=[e,`.${e}`].filter(Boolean),p=[`${e}.config`,`.${e}.config`].filter(Boolean),h=t?[t,`.${t}`]:[],w=t?[`${t}.config`,`.${t}.config`]:[],A=Array.from(new Set([c,Ke(c,"config"),Ke(c,".config"),n?Ke(c,n):void 0].filter(Boolean)));for(let $ of A){if(s)je.info(`Searching for configuration in: ${$}`);let O=[Ke(c,"config"),Ke(c,".config")].concat(n?[Ke(c,n)]:[]).includes($)?[...l,...p,...h,...w]:[...p,...l,...w,...h];for(let T of O)for(let S of u){let W=Ke($,`${T}${S}`),b=await ci(W,f,a);if(b!==null){if(s)je.success(`Configuration loaded from: ${W}`);return b}}}if(e){let $=Ke(bn(),".config",e),O=["config",`${e}.config`];if(t)O.push(`${t}.config`);if(s)je.info(`Checking user config directory: ${$}`);for(let T of O)for(let S of u){let W=Ke($,`${T}${S}`),b=await ci(W,f,a);if(b!==null){if(s)je.success(`Configuration loaded from user config directory: ${W}`);return b}}}if(e){let $=Ke(bn(),".config"),O=[`.${e}.config`];if(t)O.push(`.${t}.config`);if(s)je.info(`Checking user config directory for dotfile configs: ${$}`);for(let T of O)for(let S of u){let W=Ke($,`${T}${S}`),b=await ci(W,f,a);if(b!==null){if(s)je.success(`Configuration loaded from user config directory dotfile: ${W}`);return b}}}if(e){let $=bn(),O=[`.${e}.config`,`.${e}`];if(t)O.push(`.${t}.config`),O.push(`.${t}`);if(s)je.info(`Checking user home directory for dotfile configs: ${$}`);for(let T of O)for(let S of u){let W=Ke($,`${T}${S}`),b=await ci(W,f,a);if(b!==null){if(s)je.success(`Configuration loaded from user home directory: ${W}`);return b}}}try{let $=Ke(c,"package.json");if(La($)){let O=await import($),T=O[e];if(!T&&t){if(T=O[t],T&&s)je.success(`Using alias "${t}" configuration from package.json`)}if(T&&typeof T==="object"&&!Array.isArray(T))try{if(s)je.success(`Configuration loaded from package.json: ${T===O[e]?e:t}`);return rs(f,T,a)}catch(S){if(s)je.warn("Failed to merge package.json config:",S)}}}catch($){if(s)je.warn("Failed to load package.json:",$)}if(s)je.info(`No configuration found for "${e}"${t?` or alias "${t}"`:""}, using default configuration with environment variables`);return f}function xh(e,t={}){let r=yi.cwd();while(r.includes("storage"))r=na(r,"..");let n=na(r,e||"");if(t?.relative)return Su(yi.cwd(),n);return n}async function Eh(){try{let e=await vh({name:"clarity",alias:"logging",defaultConfig:gi,cwd:yi.cwd()});return{...gi,...e||{}}}catch{return gi}}function We(){if(pt.env.NODE_ENV==="test"||pt.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function Oh(){if(pt.env.NODE_ENV==="test"||pt.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof pt<"u"){let e=pt.type;if(e==="renderer"||e==="worker")return!1;return!!(pt.versions&&(pt.versions.node||pt.versions.bun))}return!1}class Ya{async format(e){let t=await Oh(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:Xt.pid,hostname:t(),environment:Xt.env.NODE_ENV||"development",platform:Xt.platform,version:Xt.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:Xt.env.NODE_ENV||Xt.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class Ei{name;fileLocks=new Map;currentKeyId=null;keys=new Map;fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(e,t={}){this.name=e,this.config={...Hn},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new Ya,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??le.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},n=t.timestamp!==void 0;if(n)delete r.timestamp;if(this.config={...this.config,...r,timestamp:n||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let i=this.generateKeyId(),s=this.generateKey();this.currentKeyId=i,this.keys.set(i,s),this.encryptionKeys.set(i,{key:s,createdAt:new Date}),this.setupKeyRotation()}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;let t={debug:0,info:1,success:2,warning:3,error:4},r=this.fingersCrossedConfig.activationLevel??"error";return t[e]>=t[r]}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...pi,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...pi};return{...pi,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:Hn.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,showIcons:!0,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,n])=>n!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}shouldWriteToFile(){return!We()&&this.config.writeToFile===!0}async writeToFile(e){let t=(async()=>{let n,i=0,s=3,o=1000;while(i<s)try{try{try{await Ju(this.config.logDirectory,ga.F_OK|ga.W_OK)}catch(f){if(f instanceof Error&&"code"in f)if(f.code==="ENOENT")await Ku(this.config.logDirectory,{recursive:!0,mode:493});else if(f.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw f;else throw f}}catch(f){throw console.error("Debug: [writeToFile] Failed to create log directory:",f),f}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:ht.from(e);try{if(!ei(this.currentLogFile))await Sn(this.currentLogFile,"",{mode:420});if(n=ma(this.currentLogFile,"a",420),_u(n,a,{flag:"a"}),da(n),n!==void 0)kn(n),n=void 0;if((await qt(this.currentLogFile)).size===0){if(await Sn(this.currentLogFile,a,{flag:"w",mode:420}),(await qt(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(f){let c=f;if(c.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(c.code)){if(i<s-1){let u=typeof c.message==="string"?c.message:"Unknown error";console.error(`Network error during write attempt ${i+1}/${s}:`,u);let l=o*2**i;await new Promise((p)=>setTimeout(p,l)),i++;continue}}if(c?.code&&["ENOSPC","EDQUOT"].includes(c.code))throw Error(`Disk quota exceeded or no space left on device: ${c.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",c),c}finally{if(n!==void 0)try{kn(n)}catch(f){console.error("Debug: [writeToFile] Error closing file descriptor:",f)}}}catch(a){if(i===s-1){let c=a,u=typeof c.message==="string"?c.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}i++;let f=o*2**(i-1);await new Promise((c)=>setTimeout(c,f))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(n){throw console.error("Debug: [writeToFile] Error in operation:",n),n}finally{this.pendingOperations.splice(r,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 Ut(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 Ut(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Ut(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(We())return;if(!this.shouldWriteToFile())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((n)=>{console.error("Error rotating keys:",n)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let n=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),i=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,i);if(n.length>s)for(let[o]of n.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return On(16).toString("hex")}generateKey(){return On(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=On(16),n=Bu("aes-256-gcm",t,r),i=ht.isBuffer(e)?e:ht.from(e,"utf8"),s=n.update(i),o=n.final(),a=s.length+o.length,f=n.getAuthTag(),c=ht.allocUnsafe(16+a+16);return r.copy(c,0),s.copy(c,16),o.copy(c,16+s.length),f.copy(c,16+a),{encrypted:c,iv:r}}async compressData(e){return new Promise((t,r)=>{let n=ya(),i=[];n.on("data",(s)=>i.push(s)),n.on("end",()=>t(ht.from(ht.concat(i)))),n.on("error",r),n.write(e),n.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(We())return;if(!this.shouldWriteToFile())return;let e=await qt(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,n=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let i=await ti(this.config.logDirectory),s=i.filter((f)=>f.startsWith(this.name)&&/\.log\.\d+$/.test(f)).sort((f,c)=>{let u=Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await qt(r).catch(()=>null))try{if(await pa(r,a),t.compress)try{let f=`${a}.gz`;await this.compressLogFile(a,f),await ri(a)}catch(f){console.error("Error compressing rotated file:",f)}if(s.length===0&&!i.some((f)=>f.endsWith(".log.1")))try{let f=`${r}.1`;await Sn(f,"")}catch(f){console.error("Error creating backup file:",f)}}catch(f){console.error(`Error during rotation: ${f instanceof Error?f.message:String(f)}`)}}else{let i=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${i}.log`);if(await qt(r).catch(()=>null))await pa(r,s)}if(this.currentLogFile=n,t.maxFiles){let i=(await ti(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of i.slice(t.maxFiles))await ri(Ut(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=ha(e),n=ju(t),i=ya();await Gu(r,i,n)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let n=await this.formatter.format(r);if(this.shouldWriteToFile())await this.writeToFile(n);console.log(n)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated){if(this.shouldWriteToFile())await this.writeToFile(t);console.log(t)}}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),ei(this.currentLogFile))try{let e=ma(this.currentLogFile,"r+");da(e),kn(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!We()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await ti(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await ri(Ut(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.shouldStyleConsole()?ee.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}shouldStyleConsole(){if(!this.fancy||We())return!1;let e=typeof le.env.NO_COLOR<"u",t=le.env.FORCE_COLOR==="0";if(e||t)return!1;return!!(typeof le.stderr<"u"&&le.stderr.isTTY||typeof le.stdout<"u"&&le.stdout.isTTY)}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:n="",message:i,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(n)h.push(n.replace(/[[\]]/g,""));return h.push(i),h.join(" ")}let f=le.stdout.columns||120,c="";if(s==="warning"||s==="error")c=`${r} ${i}`;else if(s==="info"||s==="success")c=`${r} ${n} ${i}`;else c=`${r} ${n} ${ee.cyan(i)}`;if(!o)return c.trim();let u=a(c).trim().length,l=a(t).length,p=Math.max(1,f-2-u-l);return`${c.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,n=0,i=e.replace(r,(s,o)=>{if(o==="%")return"%";if(n>=t.length)return s;let a=t[n++];switch(o){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 s}});if(n<t.length)i+=` ${t.slice(n).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return i}formatMarkdown(e){if(!e)return e;let t=e;return t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(r,n,i)=>{let s=ee.underline(ee.blue(n)),o=this.toAbsoluteFilePath(i);if(o&&this.shouldStyleConsole()&&this.supportsHyperlinks()){let a=`file://${encodeURI(o)}`,f="\x1B]8;;",c="\x1B\\";return`\x1B]8;;${a}\x1B\\${s}\x1B]8;;\x1B\\`}if(this.shouldStyleConsole()&&this.supportsHyperlinks())return`\x1B]8;;${i}\x1B\\${s}\x1B]8;;\x1B\\`;return s}),t=t.replace(/`([^`]+)`/g,(r,n)=>ee.bgGray(n)),t=t.replace(/\*\*([^*]+)\*\*/g,(r,n)=>ee.bold(n)),t=t.replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,(r,n)=>ee.italic(n)),t=t.replace(/(?<!_)_([^_]+)_(?!_)/g,(r,n)=>ee.italic(n)),t=t.replace(/~([^~]+)~/g,(r,n)=>ee.strikethrough(n)),t}supportsHyperlinks(){if(We())return!1;let e=le.env;if(!e)return!1;if(e.TERM_PROGRAM==="iTerm.app"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="WezTerm")return!0;if(e.WT_SESSION)return!0;if(e.TERM==="xterm-kitty")return!0;let t=e.VTE_VERSION?Number.parseInt(e.VTE_VERSION,10):0;if(!Number.isNaN(t)&&t>=5000)return!0;return!1}toAbsoluteFilePath(e){try{let t=e;if(t.startsWith("file://"))t=t.replace(/^file:\/\//,"");if(t.startsWith("~")){let r=le.env.HOME||"";if(r)t=t.replace(/^~(?=$|\/)/,r)}if(Hu(t)||t.startsWith("./")||t.startsWith("../"))t=Yu(t);else return null;return ei(t)?t:null}catch{return null}}buildOutputTexts(e){let t=this.shouldStyleConsole()?this.formatMarkdown(e):e,r=e.replace(this.ANSI_PATTERN,"");return{consoleText:t,fileText:r}}async log(e,t,...r){let n=new Date,i=this.formatConsoleTimestamp(n),s=this.formatFileTimestamp(n),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);let{consoleText:f,fileText:c}=this.buildOutputTexts(o);if(this.shouldStyleConsole()){let l=this.options.showIcons===!1?"":tl[e],p=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",h;switch(e){case"debug":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:ee.gray(f),level:e}),console.error(h);break;case"info":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.warn(h);break;case"success":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:ee.green(f),level:e}),console.error(h);break;case"warning":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.warn(h);break;case"error":if(h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.error(h),a){let w=a.split(`
|
|
153
|
+
`);for(let A of w)if(A.trim()&&!A.includes(o))console.error(this.formatConsoleMessage({timestamp:i,message:ee.gray(` ${A}`),level:e,showTimestamp:!1}))}break}}else if(!We()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}if(!this.shouldLog(e))return;let u=`${s} ${this.environment}.${e.toUpperCase()}: ${c}
|
|
154
|
+
`;if(a)u+=`${a}
|
|
155
|
+
`;if(u=u.replace(this.ANSI_PATTERN,""),this.shouldWriteToFile())await this.writeToFile(u)}progress(e,t=""){let r={update:(i,s)=>{},finish:(i)=>{},interrupt:(i,s)=>{}};if(!this.enabled)return r;let n=30;if(this.activeProgressBar={total:Math.max(1,e||1),current:0,message:t||"",barLength:n,lastRenderedLine:""},this.shouldStyleConsole()&&!We()&&le.stdout.isTTY)this.renderProgressBar(this.activeProgressBar);return{update:(i,s)=>{if(!this.enabled||!this.activeProgressBar)return;if(this.activeProgressBar.current=Math.min(Math.max(0,i),this.activeProgressBar.total),s!==void 0)this.activeProgressBar.message=s;if(this.shouldStyleConsole()&&!We()&&le.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)},finish:(i)=>{if(!this.activeProgressBar)return;this.finishProgressBar(this.activeProgressBar,i)},interrupt:(i,s="info")=>{if(!We()&&le.stdout.isTTY)le.stdout.write(`
|
|
156
|
+
`);if(this[s==="warning"?"warn":s](i),this.activeProgressBar&&this.shouldStyleConsole()&&!We()&&le.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)}}}time(e){let t=performance.now();if(this.shouldStyleConsole()){let r=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",n=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:n,icon:this.options.showIcons===!1?"":ee.blue("\u25D0"),tag:r,message:`${ee.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let n=performance.now(),i=Math.round(n-t),s=`${e} completed in ${i}ms`,o=new Date,a=this.formatConsoleTimestamp(o),f=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)f+=` ${JSON.stringify(r)}`;if(f+=`
|
|
157
|
+
`,f=f.replace(this.ANSI_PATTERN,""),this.shouldStyleConsole()){let c=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:this.options.showIcons===!1?"":ee.green("\u2713"),tag:c,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!We())console.error(f.trim());if(this.shouldWriteToFile())await this.writeToFile(f)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new Ei(t,{...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(r),r}createReadStream(){if(We())throw Error("createReadStream is not supported in browser environments");if(!ei(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return ha(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let n=ht.isBuffer(e)?e:ht.from(e,"base64"),i=n.subarray(0,16),s=n.subarray(n.length-16),o=n.subarray(16,n.length-16),a=Lu("aes-256-gcm",r,i);a.setAuthTag(s);let f=a.update(o),c=a.final(),u=f.length+c.length,l=ht.allocUnsafe(u);return f.copy(l,0),c.copy(l,f.length),l.toString("utf8")}catch(n){throw Error(`Decryption failed: ${n instanceof Error?n.message:String(n)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return We()}isServerMode(){return!We()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),n=this.formatFileTimestamp(t),{consoleText:i,fileText:s}=this.buildOutputTexts(e);if(this.shouldStyleConsole()){let a=i.split(`
|
|
158
|
+
`),f=Math.max(...a.map((p)=>p.length))+2,c=`\u250C${"\u2500".repeat(f)}\u2510`,u=`\u2514${"\u2500".repeat(f)}\u2518`,l=a.map((p)=>{return this.formatConsoleMessage({timestamp:r,message:ee.cyan(p),showTimestamp:!1})});console.error(this.formatConsoleMessage({timestamp:r,message:ee.cyan(c),showTimestamp:!1})),l.forEach((p)=>console.error(p)),console.error(this.formatConsoleMessage({timestamp:r,message:ee.cyan(u),showTimestamp:!1}))}else if(!We())console.error(`${n} ${this.environment}.INFO: [BOX] ${s}`);let o=`${n} ${this.environment}.INFO: [BOX] ${s}
|
|
159
|
+
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(o)}async prompt(e){if(We())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${ee.cyan("?")} ${e} (y/n) `);let r=(n)=>{let i=n.toString().trim().toLowerCase();le.stdin.removeListener("data",r);try{if(typeof le.stdin.setRawMode==="function")le.stdin.setRawMode(!1)}catch{}le.stdin.pause(),console.error(""),t(i==="y"||i==="yes")};try{if(typeof le.stdin.setRawMode==="function")le.stdin.setRawMode(!0)}catch{}le.stdin.resume(),le.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let o=/%([sdijfo%])/g,a=0;if(r=e.replace(o,(f,c)=>{if(c==="%")return"%";if(a>=t.length)return f;let u=t[a++];switch(c){case"s":return String(u);case"d":case"i":return Number(u).toString();case"j":case"o":return JSON.stringify(u,null,2);default:return f}}),a<t.length)r+=` ${t.slice(a).map((f)=>typeof f==="object"?JSON.stringify(f,null,2):String(f)).join(" ")}`}let{consoleText:n,fileText:i}=this.buildOutputTexts(r);if(this.shouldStyleConsole()){let o=this.options.showTags!==!1&&this.name?ee.gray(this.formatTag(this.name)):"",a=this.options.showIcons===!1?"":`${ee.blue("\u25D0")} `;console.error(`${a}${o} ${ee.cyan(n)}`)}let s=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${i}
|
|
160
|
+
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(s)}renderProgressBar(e,t=!1){if(!this.enabled||!this.shouldStyleConsole()||!le.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),n=Math.round(e.barLength*r/100),i=e.barLength-n,s=ee.green("\u2501".repeat(n)),o=ee.gray("\u2501".repeat(i)),a=`[${s}${o}]`,f=`${r}%`.padStart(4),c=e.message?` ${e.message}`:"",u=this.options.showIcons===!1?"":t||r===100?ee.green("\u2713"):ee.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${ee.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${f}${c}`,h=le.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,le.stdout.write(e.lastRenderedLine),t)le.stdout.write(`
|
|
161
|
+
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||We()||!le.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(We()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await ti(this.config.logDirectory),r=[];for(let n of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(n):n.startsWith(this.name))||!n.endsWith(".log"))continue;let i=Ut(this.config.logDirectory,n);if(e.before)try{if((await qt(i)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${i}:`,s);continue}r.push(i)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let n of r)try{await ri(n),console.warn(`Deleted log file: ${n}`)}catch(i){console.error(`Failed to delete log file ${n}:`,i)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}async function Ga(e,t={}){let{maxRetries:r=3,retryDelay:n=1000,isRetryable:i=()=>!0,fallback:s}=t,o=Error("Unknown error occurred");for(let a=0;a<=r;a++)try{return await e()}catch(f){if(o=f instanceof Error?f:Error(String(f)),a===r||!i(o))break;if(n>0)await new Promise((c)=>setTimeout(c,n))}if(s!==void 0)return s;throw o instanceof Error?o:Error(`Unknown error: ${String(o)}`)}function Va(e){return e instanceof Ve}function kh(e){return e instanceof Oi}function Sh(e){if(Va(e))return e.code==="FILE_SYSTEM_ERROR"||e.code==="BROWSER_CONFIG_ERROR";return["ENOENT","EACCES","EMFILE","ENFILE","EBUSY","network","timeout","connection"].some((t)=>e.message.toLowerCase().includes(t.toLowerCase()))}class Ni{defaultParsers;constructor(){this.defaultParsers=[{name:"boolean",canParse:(e,t)=>t==="boolean"||["true","false","1","0","yes","no"].includes(e.toLowerCase()),parse:(e)=>{let t=e.toLowerCase();return["true","1","yes"].includes(t)}},{name:"number",canParse:(e,t)=>t==="number"||!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e)),parse:(e)=>{let t=Number(e);if(Number.isNaN(t))throw TypeError(`Cannot parse "${e}" as number`);return t}},{name:"array",canParse:(e,t)=>t==="array"||e.startsWith("[")||e.includes(","),parse:(e)=>{try{let t=JSON.parse(e);if(Array.isArray(t))return t}catch{}return e.split(",").map((t)=>t.trim())}},{name:"json",canParse:(e,t)=>t==="object"||(e.startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]")),parse:(e)=>{try{return JSON.parse(e)}catch(t){throw Error(`Cannot parse "${e}" as JSON: ${t}`)}}}]}async applyEnvironmentVariables(e,t,r={}){let{prefix:n,useCamelCase:i=!0,useBackwardCompatibility:s=!0,customParsers:o={},verbose:a=!1,trackPerformance:f=!0}=r,c=async()=>{if(!e)return{config:t,source:{type:"environment",priority:50,timestamp:new Date}};let u=n||this.generateEnvPrefix(e),l={...t};return this.processObject(l,[],u,{useCamelCase:i,useBackwardCompatibility:s,customParsers:o,verbose:a,configName:e}),{config:l,source:{type:"environment",priority:50,timestamp:new Date}}};if(f)return Ar.track("applyEnvironmentVariables",c,{configName:e});return c()}generateEnvPrefix(e){return e.toUpperCase().replace(/-/g,"_")}formatEnvKey(e,t){if(!t)return e.toUpperCase();return e.replace(/([A-Z])/g,"_$1").toUpperCase()}processObject(e,t,r,n){for(let[i,s]of Object.entries(e)){let o=[...t,i],a=o.map((u)=>this.formatEnvKey(u,n.useCamelCase)),f=`${r}_${a.join("_")}`,c=n.useBackwardCompatibility?`${r}_${o.map((u)=>u.toUpperCase()).join("_")}`:null;if(n.verbose);if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.processObject(s,o,r,n);else{let u=ii.env[f]||(c?ii.env[c]:void 0);if(u!==void 0){if(n.verbose){let l=ii.env[f]?f:c}try{e[i]=this.parseEnvironmentValue(u,typeof s,f,n.customParsers,n.configName)}catch(l){if(l instanceof ki)throw l;throw Ot.envVar(f,u,typeof s,n.configName)}}}}}parseEnvironmentValue(e,t,r,n,i){for(let[s,o]of Object.entries(n))try{return o(e)}catch{continue}for(let s of this.defaultParsers)if(s.canParse(e,t))try{return s.parse(e)}catch{throw Ot.envVar(r,e,`${t} (via ${s.name} parser)`,i)}return e}getEnvironmentVariables(e){let t={},r=e.toUpperCase();for(let[n,i]of Object.entries(ii.env))if(n.startsWith(r)&&i!==void 0)t[n]=i;return t}validateEnvironmentVariable(e,t,r){let n=[];if(!/^[A-Z_][A-Z0-9_]*$/.test(e))n.push(`Environment variable key "${e}" should only contain uppercase letters, numbers, and underscores`);if(r)try{this.parseEnvironmentValue(e,t,r,{})}catch(i){n.push(`Cannot parse value "${t}" as ${r}: ${i}`)}return{isValid:n.length===0,errors:n}}generateEnvVarDocs(e,t,r={}){let{prefix:n,format:i="text"}=r,s=n||this.generateEnvPrefix(e),o=[];switch(this.extractEnvVarInfo(t,[],s,o),i){case"markdown":return this.formatAsMarkdown(o,e);case"json":return JSON.stringify(o,null,2);default:return this.formatAsText(o,e)}}extractEnvVarInfo(e,t,r,n){for(let[i,s]of Object.entries(e)){let o=[...t,i],a=`${r}_${o.map((f)=>this.formatEnvKey(f,!0)).join("_")}`;if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.extractEnvVarInfo(s,o,r,n);else n.push({key:a,type:Array.isArray(s)?"array":typeof s,description:`Configuration for ${o.join(".")}`,example:this.generateExample(s)})}}generateExample(e){if(Array.isArray(e))return JSON.stringify(e);if(typeof e==="object"&&e!==null)return JSON.stringify(e);return String(e)}formatAsText(e,t){let r=`Environment Variables for ${t}:
|
|
162
|
+
|
|
163
|
+
`;for(let n of e)r+=`${n.key}
|
|
164
|
+
`,r+=` Type: ${n.type}
|
|
165
|
+
`,r+=` Description: ${n.description}
|
|
166
|
+
`,r+=` Example: ${n.example}
|
|
167
|
+
|
|
168
|
+
`;return r}formatAsMarkdown(e,t){let r=`# Environment Variables for ${t}
|
|
169
|
+
|
|
170
|
+
`;r+=`| Variable | Type | Description | Example |
|
|
171
|
+
`,r+=`|----------|------|-------------|----------|
|
|
172
|
+
`;for(let n of e)r+=`| \`${n.key}\` | ${n.type} | ${n.description} | \`${n.example}\` |
|
|
173
|
+
`;return r}}function Th(e,t){let r=za("process");if(typeof r>"u"||!r.env)return t;let n=r.env[e];return n!==void 0?n:t}function Za(e,t,r={}){return qa(e,t,r,new WeakMap)}function qa(e,t,r,n){let{arrayMergeMode:i="replace",skipNullish:s=!1,customMerger:o}=r;if(t===null||t===void 0)return s?e:t;if(o){let a=o(e,t);if(a!==void 0)return a}if(Array.isArray(t)||Array.isArray(e))return Ua(e,t,i,n);if(!Qe(t)||!Qe(e))return t;return Fh(e,t,r,n)}function Ua(e,t,r,n){if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(e)&&!Array.isArray(t))return t;if(Array.isArray(t)&&Array.isArray(e))switch(r){case"replace":return t;case"concat":return Rh(e,t);case"smart":return Wh(e,t,n);default:return t}return t}function Rh(e,t){let r=[...t];for(let n of e)if(!r.some((i)=>Jn(i,n)))r.push(n);return r}function Wh(e,t,r){if(t.length===0)return e;if(e.length===0)return t;if(Qe(t[0])&&Qe(e[0]))return Nh(e,t,r);if(t.every((n)=>typeof n==="string")&&e.every((n)=>typeof n==="string")){let n=[...t];for(let i of e)if(!n.includes(i))n.push(i);return n}return t}function Nh(e,t,r){let n=[...t];for(let i of e){if(!Qe(i)){n.push(i);continue}let s=["id","name","key","path","type"],o=!1;for(let a of s)if(a in i){if(n.find((f)=>Qe(f)&&(a in f)&&f[a]===i[a])){o=!0;break}}if(!o)n.push(i)}return n}function Fh(e,t,r,n){let i=t;if(Qe(i)&&n.has(i))return n.get(i);let s={...e};if(Qe(i))n.set(i,s);for(let o in i){if(!Object.prototype.hasOwnProperty.call(i,o))continue;let a=i[o],f=s[o];if(r.skipNullish&&(a===null||a===void 0))continue;if(a===null||a===void 0){s[o]=a;continue}if(Qe(a)&&Qe(f))s[o]=qa(f,a,r,n);else if(Array.isArray(a)||Array.isArray(f))s[o]=Ua(f,a,r.arrayMergeMode||"smart",n);else s[o]=a}return s}function is(e,t,r="replace"){return Za(e,t,{arrayMergeMode:r==="replace"?"replace":"smart",skipNullish:!0})}function Jn(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!Jn(e[r],t[r]))return!1;return!0}if(Qe(e)&&Qe(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i of r){if(!Object.prototype.hasOwnProperty.call(t,i))return!1;if(!Jn(e[i],t[i]))return!1}return!0}return!1}function Qe(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}class Fi{extensions=[".ts",".js",".mjs",".cjs",".json",".mts",".cts"];async loadFromPath(e,t,r={}){let{arrayStrategy:n="replace",useCache:i=!0,cacheTtl:s,trackPerformance:o=!0,verbose:a=!1}=r;if(i){let c=tr.getWithFileCheck("file",e);if(c){if(a)console.log(`Configuration loaded from cache: ${e}`);return c}}let f=async()=>{if(!ni(e))return null;try{let c=`?t=${Date.now()}`,u=await import(e+c),l=u.default||u,p="default"in u,h=Object.keys(u).length>0;if(!p&&!h)throw new Cr(e,Error("Configuration file is empty and exports nothing"),"unknown");if(typeof l!=="object"||l===null||Array.isArray(l))throw new Cr(e,Error("Configuration must export a valid object"),"unknown");let w={config:is(t,l,n),source:{type:"file",path:e,priority:100,timestamp:new Date}};if(i)tr.setWithFileCheck("file",w,e,s);return w}catch(c){throw c instanceof Error?Ot.configLoad(e,c):Ot.configLoad(e,Error(String(c)))}};if(o)return Ar.track("loadFromPath",f,{path:e});return f()}async tryLoadFromPaths(e,t,r={}){for(let n of e)try{let i=await this.loadFromPath(n,t,r);if(i)return i}catch(i){if(i instanceof Error&&i.name==="ConfigLoadError")throw i;if(r.verbose)console.warn(`Failed to load config from ${n}:`,i)}return null}generateConfigPaths(e,t,r){let n=this.generateNamePatterns(e,r),i=[];for(let s of n)for(let o of this.extensions)i.push(Tn(t,`${s}${o}`));return i}generateNamePatterns(e,t){let r=[];if(r.push("config",".config"),e)r.push(e,`.${e}.config`,`${e}.config`,`.${e}`);if(t){if(r.push(t,`.${t}.config`,`${t}.config`,`.${t}`),e)r.push(`${e}.${t}.config`,`.${e}.${t}.config`)}return r.filter(Boolean)}checkFileAccess(e){return Ga(async()=>{return ni(e)},{maxRetries:2,retryDelay:100,fallback:!1})}async discoverConfigFiles(e,t,r){let n=[];if(!ni(e))return n;if(t||r){let i=this.generateNamePatterns(t||"",r);for(let s of i)for(let o of this.extensions){let a=Tn(e,`${s}${o}`);if(await this.checkFileAccess(a))n.push(a)}}else try{let{readdirSync:i}=await import("fs"),s=i(e);for(let o of s)if(this.looksLikeConfigFile(o)){let a=Tn(e,o);if(await this.checkFileAccess(a))n.push(a)}}catch{return[]}return n}looksLikeConfigFile(e){return[/\.config\.(ts|js|mjs|cjs|json|mts|cts)$/,/^\..*\.(ts|js|mjs|cjs|json|mts|cts)$/,/config\.(ts|js|mjs|cjs|json|mts|cts)$/].some((t)=>t.test(e))}async validateConfigFile(e){let t=[];try{if(!ni(e))return t.push("Configuration file does not exist"),t;let r=await import(e),n=r.default||r;if(n===void 0)t.push("Configuration file must export a default value or named exports");else if(typeof n!=="object"||n===null)t.push("Configuration must be an object");else if(Array.isArray(n))t.push("Configuration cannot be an array at the root level");if(e.endsWith(".json"))try{let{readFileSync:i}=await import("fs"),s=i(e,"utf8");JSON.parse(s)}catch(i){t.push(`Invalid JSON syntax: ${i}`)}}catch(r){t.push(`Failed to load configuration file: ${r}`)}return t}async getFileModificationTime(e){try{let{statSync:t}=await import("fs");return t(e).mtime}catch{return null}}async preloadConfigurations(e,t={}){let r=new Map;return await Promise.allSettled(e.map(async(n)=>{try{let i=await this.loadFromPath(n,{},t);if(i)r.set(n,i.config)}catch(i){if(t.verbose)console.warn(`Failed to preload ${n}:`,i)}})),r}}class ns{async validateConfiguration(e,t,r={}){let{stopOnFirstError:n=!1,validateRequired:i=!0,validateTypes:s=!0,customRules:o=[],trackPerformance:a=!0,verbose:f=!1}=r,c=async()=>{let u=[],l=[],p={stopOnFirstError:n,validateRequired:i,validateTypes:s,customRules:o,trackPerformance:a,verbose:f};try{if(typeof t==="string")return await this.validateWithSchemaFile(e,t,p);else if(Array.isArray(t))return this.validateWithRules(e,[...t,...o],p);else return this.validateWithJSONSchema(e,t,p)}catch(h){return u.push({path:"",message:`Validation failed: ${h}`,rule:"system"}),{isValid:!1,errors:u,warnings:l}}};if(a)return await Ar.track("validateConfiguration",c);return c()}async validateWithSchemaFile(e,t,r){try{if(!Vu(t))throw new br(t,[{path:"",message:"Schema file does not exist"}]);let n=await import(t),i=n.default||n;if(Array.isArray(i))return this.validateWithRules(e,i,r);else return this.validateWithJSONSchema(e,i,r)}catch(n){throw new br(t,[{path:"",message:`Failed to load schema: ${n}`}])}}validateWithJSONSchema(e,t,r){let n=[],i=[];return this.validateObjectAgainstSchema(e,t,"",n,i,r),{isValid:n.length===0,errors:n,warnings:i}}validateObjectAgainstSchema(e,t,r,n,i,s){if(s.validateTypes&&t.type){let o=Array.isArray(e)?"array":typeof e,a=Array.isArray(t.type)?t.type:[t.type];if(!a.includes(o)){if(n.push({path:r,message:`Expected type ${a.join(" or ")}, got ${o}`,expected:a.join(" or "),actual:o,rule:"type"}),s.stopOnFirstError)return}}if(t.enum&&!t.enum.includes(e)){if(n.push({path:r,message:`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"}),s.stopOnFirstError)return}if(typeof e==="string"){if(t.minLength!==void 0&&e.length<t.minLength)n.push({path:r,message:`String length must be at least ${t.minLength}`,expected:`>= ${t.minLength}`,actual:e.length,rule:"minLength"});if(t.maxLength!==void 0&&e.length>t.maxLength)n.push({path:r,message:`String length must not exceed ${t.maxLength}`,expected:`<= ${t.maxLength}`,actual:e.length,rule:"maxLength"});if(t.pattern){if(!new RegExp(t.pattern).test(e))n.push({path:r,message:`String does not match pattern ${t.pattern}`,expected:t.pattern,actual:e,rule:"pattern"})}}if(typeof e==="number"){if(t.minimum!==void 0&&e<t.minimum)n.push({path:r,message:`Value must be at least ${t.minimum}`,expected:`>= ${t.minimum}`,actual:e,rule:"minimum"});if(t.maximum!==void 0&&e>t.maximum)n.push({path:r,message:`Value must not exceed ${t.maximum}`,expected:`<= ${t.maximum}`,actual:e,rule:"maximum"})}if(Array.isArray(e)&&t.items)for(let o=0;o<e.length;o++){let a=r?`${r}[${o}]`:`[${o}]`;if(this.validateObjectAgainstSchema(e[o],t.items,a,n,i,s),s.stopOnFirstError&&n.length>0)return}if(e&&typeof e==="object"&&!Array.isArray(e)){let o=e;if(s.validateRequired&&t.required){for(let a of t.required)if(!(a in o)){if(n.push({path:r?`${r}.${a}`:a,message:`Missing required property '${a}'`,expected:"required",rule:"required"}),s.stopOnFirstError)return}}if(t.properties){for(let[a,f]of Object.entries(t.properties))if(a in o){let c=r?`${r}.${a}`:a;if(this.validateObjectAgainstSchema(o[a],f,c,n,i,s),s.stopOnFirstError&&n.length>0)return}}if(t.additionalProperties===!1){let a=new Set(Object.keys(t.properties||{}));for(let f of Object.keys(o))if(!a.has(f))i.push({path:r?`${r}.${f}`:f,message:`Additional property '${f}' is not allowed`,rule:"additionalProperties"})}}}validateWithRules(e,t,r){let n=[],i=[];for(let s of t)try{let o=this.getValueByPath(e,s.path),a=this.validateWithRule(o,s,s.path);if(n.push(...a),r.stopOnFirstError&&n.length>0)break}catch(o){n.push({path:s.path,message:`Rule validation failed: ${o}`,rule:"system"})}return{isValid:n.length===0,errors:n,warnings:i}}validateWithRule(e,t,r){let n=[];if(t.required&&(e===void 0||e===null))return n.push({path:r,message:t.message||`Property '${r}' is required`,expected:"required",rule:"required"}),n;if(e===void 0||e===null)return n;if(t.type){let i=Array.isArray(e)?"array":typeof e;if(i!==t.type)n.push({path:r,message:t.message||`Expected type ${t.type}, got ${i}`,expected:t.type,actual:i,rule:"type"})}if(t.min!==void 0){let i=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(i<t.min)n.push({path:r,message:t.message||`Value must be at least ${t.min}`,expected:`>= ${t.min}`,actual:i,rule:"min"})}if(t.max!==void 0){let i=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(i>t.max)n.push({path:r,message:t.message||`Value must not exceed ${t.max}`,expected:`<= ${t.max}`,actual:i,rule:"max"})}if(t.pattern&&typeof e==="string"){if(!t.pattern.test(e))n.push({path:r,message:t.message||`Value does not match pattern ${t.pattern}`,expected:t.pattern.toString(),actual:e,rule:"pattern"})}if(t.enum&&!t.enum.includes(e))n.push({path:r,message:t.message||`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"});if(t.validator){let i=t.validator(e);if(i)n.push({path:r,message:t.message||i,rule:"custom"})}return n}getValueByPath(e,t){if(!t)return e;let r=t.split("."),n=e;for(let i of r)if(n&&typeof n==="object"&&i in n)n=n[i];else return;return n}generateRulesFromInterface(e){let t=[],r=e.matchAll(/(\w+)(\?)?:\s*(\w+)/g);for(let n of r){let[,i,s,o]=n;t.push({path:i,required:!s,type:this.mapTypeScriptType(o)})}return t}mapTypeScriptType(e){switch(e.toLowerCase()){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"array":return"array";case"object":return"object";default:return"object"}}static createCommonRules(){return{server:[{path:"port",required:!0,type:"number",min:1,max:65535},{path:"host",required:!0,type:"string",min:1},{path:"ssl",type:"boolean"}],database:[{path:"url",required:!0,type:"string",min:1},{path:"pool",type:"number",min:1,max:100},{path:"timeout",type:"number",min:0}],api:[{path:"baseUrl",required:!0,type:"string",pattern:il},{path:"timeout",type:"number",min:0},{path:"retries",type:"number",min:0,max:10}]}}}class ss{fileLoader=new Fi;envProcessor=new Ni;validator=new ns;async loadConfig(e){let t=Date.now(),{cache:r,performance:n,schema:i,validate:s,...o}=e;try{if(r?.enabled){let f=this.checkCache(o.name||"",o);if(f)return f}let a;try{a=await this.loadConfigurationStrategies(o,!0,r)}catch(f){let c=o.__strictErrorHandling;if(f instanceof Error&&f.name==="ConfigNotFoundError"){if(c)throw f;a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`No configuration file found for "${o.name||"config"}", using defaults with environment variables`]}}else if(f instanceof Error&&f.name==="ConfigLoadError"){let u=f.message.includes("EACCES")||f.message.includes("EPERM")||f.message.includes("permission denied"),l=!u&&(f.message.includes("syntax")||f.message.includes("Expected")||f.message.includes("Unexpected")||f.message.includes("BuildMessage")||f.message.includes("errors building")),p=f.message.includes("Configuration must export a valid object")||f.message.includes("Configuration file is empty and exports nothing");if(c&&(p||u))throw f;if(l&&(!c||!p))a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:["Configuration file has syntax errors, using defaults with environment variables"]};else if(!c)a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading error, using defaults: ${f.message}`]};else throw f}else a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading failed, using defaults: ${f instanceof Error?f.message:String(f)}`]}}if(i||s)await this.validateConfiguration(a.config,i,s,o.name);if(r?.enabled&&a)this.cacheResult(o.name||"",a,r,o);if(n?.enabled){let f={operation:"loadConfig",duration:Date.now()-t,configName:o.name,timestamp:new Date};if(n.onMetrics)n.onMetrics(f);if(n.slowThreshold&&f.duration>n.slowThreshold)it.warn(`Slow configuration loading detected: ${f.duration}ms for ${o.name}`);a.metrics=f}return a}catch(a){let f=Date.now()-t;throw it.error(`Configuration loading failed after ${f}ms:`,[a instanceof Error?a:Error(String(a))]),a}}async loadConfigurationStrategies(e,t=!1,r){let{name:n="",alias:i,cwd:s,configDir:o,defaultConfig:a,checkEnv:f=!0,arrayStrategy:c="replace",verbose:u=!1}=e,l=s||Nt.cwd(),p=[],h=await this.loadLocalConfiguration(n,i,l,o,a,c,u,f,r);if(h)return p.push(...this.getLocalSearchPaths(n,i,l,o)),this.finalizeResult(h,p,f,n,u);let w=await this.loadHomeConfiguration(n,i,a,c,u,f);if(w)return p.push(...this.getHomeSearchPaths(n,i)),this.finalizeResult(w,p,f,n,u);let A=await this.loadPackageJsonConfiguration(n,i,l,a,c,u,f);if(A)return p.push(He(l,"package.json")),this.finalizeResult(A,p,f,n,u);if(p.push(...this.getAllSearchPaths(n,i,l,o)),t)throw Ot.configNotFound(n,p,i);return{...await this.applyEnvironmentVariables(n,a,f,u),warnings:[`No configuration file found for "${n}"${i?` or alias "${i}"`:""}, using defaults with environment variables`]}}async loadLocalConfiguration(e,t,r,n,i,s,o,a,f){let c=a?$r(e,i,o):i,u=this.getLocalDirectories(r,n);for(let l of u){if(o)it.info(`Searching for configuration in: ${l}`);let p=this.fileLoader.generateConfigPaths(e,l,t),h=await this.fileLoader.tryLoadFromPaths(p,c,{arrayStrategy:s,verbose:o,cacheTtl:f?.ttl,useCache:!f?.ttl||f.ttl>100});if(h){if(o)it.success(`Configuration loaded from: ${h.source.path}`);return h}}return null}async loadHomeConfiguration(e,t,r,n,i,s){if(!e)return null;let o=s?$r(e,r,i):r,a=[He(Yt(),".config",e),He(Yt(),".config"),Yt()];for(let f of a){if(i)it.info(`Checking home directory: ${f}`);let c=this.fileLoader.generateConfigPaths(e,f,t),u=await this.fileLoader.tryLoadFromPaths(c,o,{arrayStrategy:n,verbose:i});if(u){if(i)it.success(`Configuration loaded from home directory: ${u.source.path}`);return u}}return null}async loadPackageJsonConfiguration(e,t,r,n,i,s,o){let a=o?$r(e,n,s):n;try{let f=He(r,"package.json");if(!jn(f))return null;let c=await import(f),u=c[e],l=e;if(!u&&t)u=c[t],l=t;if(u&&typeof u==="object"&&!Array.isArray(u)){if(s)it.success(`Configuration loaded from package.json: ${l}`);return{config:is(a,u,i),source:{type:"package.json",path:f,priority:30,timestamp:new Date}}}}catch(f){if(s)it.warn("Failed to load package.json:",[f instanceof Error?f:Error(String(f))])}return null}async applyEnvironmentVariables(e,t,r,n){if(!r||!e||typeof t!=="object"||t===null||Array.isArray(t))return{config:t,source:{type:"default",priority:10,timestamp:new Date}};return{config:$r(e,t,n),source:{type:"environment",priority:20,timestamp:new Date}}}async finalizeResult(e,t,r,n,i){return{config:e.config,source:e.source,path:e.source.path}}async validateConfiguration(e,t,r,n){let i=[];if(r){let s=r(e);if(s)i.push(...s)}if(t){let s=await this.validator.validateConfiguration(e,t);if(!s.isValid)i.push(...s.errors.map((o)=>o.path?`${o.path}: ${o.message}`:o.message))}if(i.length>0)throw Ot.configValidation(n||"unknown",i,n)}checkCache(e,t){let r=this.generateCacheKey(e,t);return tr.get(r)||null}cacheResult(e,t,r,n){let i=this.generateCacheKey(e,n);tr.set(i,t,void 0,r.ttl)}generateCacheKey(e,t){let r=[e];if(t.alias)r.push(`alias:${t.alias}`);if(t.cwd)r.push(`cwd:${t.cwd}`);if(t.configDir)r.push(`configDir:${t.configDir}`);if("checkEnv"in t)r.push(`checkEnv:${t.checkEnv}`);return r.join("|")}getLocalDirectories(e,t){return Array.from(new Set([e,He(e,"config"),He(e,".config"),t?He(e,t):void 0].filter(Boolean)))}getAllSearchPaths(e,t,r,n){let i=[];return i.push(...this.getLocalSearchPaths(e,t,r,n)),i.push(...this.getHomeSearchPaths(e,t)),i.push(He(r,"package.json")),i}getLocalSearchPaths(e,t,r,n){let i=this.getLocalDirectories(r,n),s=[];for(let o of i)s.push(...this.fileLoader.generateConfigPaths(e,o,t));return s}getHomeSearchPaths(e,t){if(!e)return[];let r=[He(Yt(),".config",e),He(Yt(),".config"),Yt()],n=[];for(let i of r)n.push(...this.fileLoader.generateConfigPaths(e,i,t));return n}async loadConfigWithResult(e){return this.loadConfig(e)}}function Oa(e){let t=!(e.message.includes("EACCES")||e.message.includes("EPERM")||e.message.includes("permission denied"))&&(e.message.includes("syntax")||e.message.includes("Expected")||e.message.includes("Unexpected")||e.message.includes("BuildMessage")),r=e.message.includes("Configuration must export a valid object")||e.message.includes("Configuration file is empty and exports nothing");return t||r}async function Ph(e){return $t.loadConfig({...e,__strictErrorHandling:!0})}async function Xa(e){let t="defaultConfig"in e&&e.defaultConfig!==void 0?e.defaultConfig:{},r="cache"in e||"performance"in e||"schema"in e||"validate"in e;try{let n;if(r)n=await $t.loadConfig(e);else n=await $t.loadConfig({...e,defaultConfig:t,cache:{enabled:!0},performance:{enabled:!1}});return n?.config??t}catch(n){let i=n instanceof Error?n.name:"UnknownError",s=n instanceof Error?n.message:String(n);if(!(i==="ConfigNotFoundError"||i==="ConfigLoadError"||i==="ConfigValidationError"||s.includes("config"))&&e.verbose)it.warn("Unexpected error loading config, using defaults:",[n instanceof Error?n:Error(String(n))]);let o=r?{...e,defaultConfig:t}:{...e,defaultConfig:t,cache:{enabled:!0},performance:{enabled:!1}};if("checkEnv"in e?e.checkEnv!==!1:!0)return(await $t.applyEnvironmentVariables(o.name||"",t,!0,o.verbose||!1))?.config??t;return t}}async function Dh(e={defaultConfig:{}}){if(typeof e==="string"){let{cwd:t}=await import("process");try{return(await $t.loadConfig({name:e,cwd:t(),generatedDir:"./generated",configDir:"./config",defaultConfig:{},checkEnv:!0,arrayStrategy:"replace"})).config}catch(r){if(r instanceof Error&&(r.name==="ConfigNotFoundError"||r.name==="ConfigLoadError"&&Oa(r)))return(await $t.applyEnvironmentVariables(e,{},!0,!1)).config;throw r}}try{return(await $t.loadConfig({...e,cwd:e.cwd||Nt.cwd(),cache:{enabled:!0},performance:{enabled:!1}})).config}catch(t){if(t instanceof Error&&(t.name==="ConfigNotFoundError"||t.name==="ConfigLoadError"&&Oa(t)))return(await $t.applyEnvironmentVariables(e.name||"",e.defaultConfig||{},e.checkEnv!==!1,e.verbose||!1)).config;throw t}}async function Mh(e,t,r="replace"){let n=new Fi;try{let i=await n.loadFromPath(e,t,{arrayStrategy:r,useCache:!1,trackPerformance:!1});return i?i.config:null}catch{return null}}function $r(e,t,r=!1){let n=new Ni,i=e.toUpperCase().replace(/[^A-Z0-9]/g,"_");function s(o,a=[]){let f={...o};for(let[c,u]of Object.entries(o)){let l=[...a,c],p=[`${i}_${l.join("_").toUpperCase()}`,`${i}_${l.map((A)=>A.toUpperCase()).join("")}`,`${i}_${l.map((A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase()).join("")}`],h,w;for(let A of p)if(h=Nt.env[A],h!==void 0){w=A;break}if(h!==void 0&&w)if(typeof u==="boolean")f[c]=["true","1","yes"].includes(h.toLowerCase());else if(typeof u==="number"){let A=Number(h);if(!Number.isNaN(A))f[c]=A}else if(Array.isArray(u))try{f[c]=JSON.parse(h)}catch{f[c]=h.split(",").map((A)=>A.trim())}else f[c]=h;else if(u&&typeof u==="object"&&!Array.isArray(u))f[c]=s(u,l)}return f}return s(t)}function Ih(e){let t=He(Nt.cwd(),e.configDir),r=He(Nt.cwd(),e.generatedDir),n=He(r,"config-types.ts");if(!jn(ia(n)))xu(ia(n),{recursive:!0,mode:511});let i=jn(t)?Eu(t).map((o)=>o.replace(/\.(ts|js|mjs|cjs|mts|cts|json)$/,"")).sort():[],s=`// Generated by bunfig v${hd}
|
|
174
|
+
export type ConfigNames = ${i.length?`'${i.join("' | '")}'`:"string"}
|
|
175
|
+
`;Ou(n,s,{mode:438})}function Bh(e){let t=null,r=null,n=()=>{if(!r)r=Xa(e).then((s)=>{return t=s,s},(s)=>{let o="defaultConfig"in e?e.defaultConfig:{};if(t=o,"verbose"in e&&e.verbose)it.warn("Config loading failed, using defaults:",[s instanceof Error?s:Error(String(s))]);return o});return r},i="defaultConfig"in e?e.defaultConfig:{};return t=i,n(),new Proxy({},{get(s,o){if(t)return t[o];let a=i[o];return n(),a},has(s,o){return o in(t||i)},ownKeys(){return Object.keys(t||i)},getOwnPropertyDescriptor(s,o){return Object.getOwnPropertyDescriptor(t||i,o)},set(s,o,a){if(!t)t={...i};return t[o]=a,!0}})}function Lh(e){let t=$a(Uu.cwd(),e?.configDir||"./config");function r(){if(!Zu(t))return[];let i=new Set([".ts",".js",".mjs",".cjs",".mts",".cts",".json"]),s=[".ts",".mts",".cts",".js",".mjs",".cjs",".json"],o=qu(t).filter((f)=>i.has(Rn(f))).map((f)=>({base:f.replace(/\.(?:ts|js|mjs|cjs|mts|cts|json)$/i,""),file:f})),a=new Map;for(let{base:f,file:c}of o){let u=Rn(c).toLowerCase(),l=a.get(f);if(!l){a.set(f,c);continue}let p=Rn(l).toLowerCase();if(s.indexOf(u)<s.indexOf(p))a.set(f,c)}return Array.from(a.entries()).map(([f,c])=>({base:f,file:c})).sort((f,c)=>f.base.localeCompare(c.base))}function n(){let i=r(),s=i.map((f)=>f.base),o=s.length?s.map((f)=>`'${f}'`).join(" | "):"string",a=i.length?`{
|
|
176
|
+
${i.map((f)=>{let c=$a(t,f.file).replace(/\\/g,"/");return` '${f.base}': typeof import('${c}').default`}).join(`,
|
|
177
|
+
`)}
|
|
178
|
+
}`:"Record<string, any>";return`export type ConfigNames = ${o}
|
|
179
|
+
export type ConfigByName = ${a}
|
|
180
|
+
export type Config<N extends ConfigNames> = N extends keyof ConfigByName ? ConfigByName[N] : unknown
|
|
181
|
+
export type ConfigOf = Config
|
|
182
|
+
`}return{name:"bunfig-plugin",setup(i){i.onResolve({filter:/^virtual:bunfig-types$/},(s)=>{return{path:s.path,namespace:"bunfig-virtual"}}),i.onLoad({filter:/^virtual:bunfig-types$/,namespace:"bunfig-virtual"},()=>{return{contents:n(),loader:"ts"}})}}}function md(e,t={}){let r=Ci.cwd();while(r.includes("storage"))r=wa(r,"..");let n=wa(r,e||"");if(t?.relative)return zu(Ci.cwd(),n);return n}function Fe(){if(yt.env.NODE_ENV==="test"||yt.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function pd(){if(yt.env.NODE_ENV==="test"||yt.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof yt<"u"){let e=yt.type;if(e==="renderer"||e==="worker")return!1;return!!(yt.versions&&(yt.versions.node||yt.versions.bun))}return!1}class al{async format(e){let t=await pd(),r=await this.getMetadata(t);return JSON.stringify({timestamp:e.timestamp.toISOString(),level:e.level,name:e.name,message:e.message,metadata:r})}async getMetadata(e){if(e){let{hostname:t}=await import("os");return{pid:er.pid,hostname:t(),environment:er.env.NODE_ENV||"development",platform:er.platform,version:er.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:er.env.NODE_ENV||er.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}class Pi{name;fileLocks=new Map;currentKeyId=null;keys=new Map;fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(e,t={}){this.name=e,this.config={...Si},this.options=this.normalizeOptions(t),this.formatter=this.options.formatter||new al,this.enabled=t.enabled??!0,this.fancy=t.fancy??!0,this.tagFormat=t.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=t.timestampPosition??"right",this.environment=t.environment??fe.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(t);let r={...t},n=t.timestamp!==void 0;if(n)delete r.timestamp;if(this.config={...this.config,...r,timestamp:n||this.config.timestamp,level:this.options.level??"info"},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let i=this.generateKeyId(),s=this.generateKey();this.currentKeyId=i,this.keys.set(i,s),this.encryptionKeys.set(i,{key:s,createdAt:new Date}),this.setupKeyRotation()}}shouldActivateFingersCrossed(e){if(!this.fingersCrossedConfig)return!1;let t={debug:0,info:1,success:2,warning:3,error:4},r=this.fingersCrossedConfig.activationLevel??"error";return t[e]>=t[r]}initializeFingersCrossedConfig(e){if(!e.fingersCrossedEnabled&&e.fingersCrossed)return{...Ln,...e.fingersCrossed};if(!e.fingersCrossedEnabled)return null;if(!e.fingersCrossed)return{...Ln};return{...Ln,...e.fingersCrossed}}normalizeOptions(e){let t={format:"json",level:"info",logDirectory:Si.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,showIcons:!0,formatter:void 0},r={...t,...Object.fromEntries(Object.entries(e).filter(([,n])=>n!==void 0))};if(!r.level||!["debug","info","success","warning","error"].includes(r.level))r.level=t.level;return r}shouldWriteToFile(){return!Fe()&&this.config.writeToFile===!0}async writeToFile(e){let t=(async()=>{let n,i=0,s=3,o=1000;while(i<s)try{try{try{await ih(this.config.logDirectory,va.F_OK|va.W_OK)}catch(f){if(f instanceof Error&&"code"in f)if(f.code==="ENOENT")await nh(this.config.logDirectory,{recursive:!0,mode:493});else if(f.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw f;else throw f}}catch(f){throw console.error("Debug: [writeToFile] Failed to create log directory:",f),f}let a=this.validateEncryptionConfig()?(await this.encrypt(e)).encrypted:dt.from(e);try{if(!si(this.currentLogFile))await Fn(this.currentLogFile,"",{mode:420});if(n=Aa(this.currentLogFile,"a",420),rh(n,a,{flag:"a"}),ba(n),n!==void 0)Nn(n),n=void 0;if((await zt(this.currentLogFile)).size===0){if(await Fn(this.currentLogFile,a,{flag:"w",mode:420}),(await zt(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(f){let c=f;if(c.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(c.code)){if(i<s-1){let u=typeof c.message==="string"?c.message:"Unknown error";console.error(`Network error during write attempt ${i+1}/${s}:`,u);let l=o*2**i;await new Promise((p)=>setTimeout(p,l)),i++;continue}}if(c?.code&&["ENOSPC","EDQUOT"].includes(c.code))throw Error(`Disk quota exceeded or no space left on device: ${c.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",c),c}finally{if(n!==void 0)try{Nn(n)}catch(f){console.error("Debug: [writeToFile] Error closing file descriptor:",f)}}}catch(a){if(i===s-1){let c=a,u=typeof c.message==="string"?c.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",u),a}i++;let f=o*2**(i-1);await new Promise((c)=>setTimeout(c,f))}})();this.pendingOperations.push(t);let r=this.pendingOperations.length-1;try{await t}catch(n){throw console.error("Debug: [writeToFile] Error in operation:",n),n}finally{this.pendingOperations.splice(r,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 Qt(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 Qt(this.config.logDirectory,`${this.name}.log`);let e=new Date().toISOString().split("T")[0];return Qt(this.config.logDirectory,`${this.name}-${e}.log`)}setupRotation(){if(Fe())return;if(!this.shouldWriteToFile())return;if(typeof this.config.rotation==="boolean")return;let e=this.config.rotation,t;switch(e.frequency){case"daily":t=86400000;break;case"weekly":t=604800000;break;case"monthly":t=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},t)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let e=this.config.rotation.keyRotation;if(!e?.enabled)return;let t=typeof e.interval==="number"?e.interval:60,r=Math.max(t,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch((n)=>{console.error("Error rotating keys:",n)})},r)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let e=this.config.rotation.keyRotation,t=this.generateKeyId(),r=this.generateKey();this.currentKeyId=t,this.keys.set(t,r),this.encryptionKeys.set(t,{key:r,createdAt:new Date});let n=Array.from(this.encryptionKeys.entries()).sort(([,o],[,a])=>a.createdAt.getTime()-o.createdAt.getTime()),i=typeof e.maxKeys==="number"?e.maxKeys:1,s=Math.max(1,i);if(n.length>s)for(let[o]of n.slice(s))this.encryptionKeys.delete(o),this.keys.delete(o)}generateKeyId(){return Wn(16).toString("hex")}generateKey(){return Wn(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let e=this.keys.get(this.currentKeyId);if(!e)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:e,id:this.currentKeyId}}encrypt(e){let{key:t}=this.getCurrentKey(),r=Wn(16),n=Qu("aes-256-gcm",t,r),i=dt.isBuffer(e)?e:dt.from(e,"utf8"),s=n.update(i),o=n.final(),a=s.length+o.length,f=n.getAuthTag(),c=dt.allocUnsafe(16+a+16);return r.copy(c,0),s.copy(c,16),o.copy(c,16+s.length),f.copy(c,16+a),{encrypted:c,iv:r}}async compressData(e){return new Promise((t,r)=>{let n=Ea(),i=[];n.on("data",(s)=>i.push(s)),n.on("end",()=>t(dt.from(dt.concat(i)))),n.on("error",r),n.write(e),n.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let e={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let t=this.config.rotation.encrypt;return{...e,...t}}return e}async rotateLog(){if(Fe())return;if(!this.shouldWriteToFile())return;let e=await zt(this.currentLogFile).catch(()=>null);if(!e)return;let t=this.config.rotation;if(typeof t==="boolean")return;if(t.maxSize&&e.size>=t.maxSize){let r=this.currentLogFile,n=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let i=await oi(this.config.logDirectory),s=i.filter((f)=>f.startsWith(this.name)&&/\.log\.\d+$/.test(f)).sort((f,c)=>{let u=Number.parseInt(f.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(c.match(/\.log\.(\d+)$/)?.[1]||"0")-u}),o=s.length>0?Number.parseInt(s[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,a=`${r}.${o}`;if(await zt(r).catch(()=>null))try{if(await xa(r,a),t.compress)try{let f=`${a}.gz`;await this.compressLogFile(a,f),await ai(a)}catch(f){console.error("Error compressing rotated file:",f)}if(s.length===0&&!i.some((f)=>f.endsWith(".log.1")))try{let f=`${r}.1`;await Fn(f,"")}catch(f){console.error("Error creating backup file:",f)}}catch(f){console.error(`Error during rotation: ${f instanceof Error?f.message:String(f)}`)}}else{let i=new Date().toISOString().replace(/[:.]/g,"-"),s=r.replace(/\.log$/,`-${i}.log`);if(await zt(r).catch(()=>null))await xa(r,s)}if(this.currentLogFile=n,t.maxFiles){let i=(await oi(this.config.logDirectory)).filter((s)=>s.startsWith(this.name)).sort((s,o)=>o.localeCompare(s));for(let s of i.slice(t.maxFiles))await ai(Qt(this.config.logDirectory,s))}}}async compressLogFile(e,t){let r=Ca(e),n=th(t),i=Ea();await ah(r,i,n)}async handleFingersCrossedBuffer(e,t){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(e)&&!this.isActivated){this.isActivated=!0;for(let r of this.logBuffer){let n=await this.formatter.format(r);if(this.shouldWriteToFile())await this.writeToFile(n);console.log(n)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated){if(this.shouldWriteToFile())await this.writeToFile(t);console.log(t)}}shouldLog(e){if(!this.enabled)return!1;let t={debug:0,info:1,success:2,warning:3,error:4};return t[e]>=t[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((e)=>{if(e instanceof Promise)return e.catch((t)=>{console.error("Error in pending write operation:",t)});return Promise.resolve()})),si(this.currentLogFile))try{let e=Aa(this.currentLogFile,"r+");ba(e),Nn(e)}catch(e){console.error(`Error flushing file: ${e}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let e of this.pendingOperations)if(typeof e.cancel==="function")e.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(e){console.error("Error waiting for pending operations:",e)}if(!Fe()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let e=(await oi(this.config.logDirectory)).filter((t)=>(t.includes("temp")||t.includes(".tmp"))&&t.includes(this.name));for(let t of e)try{await ai(Qt(this.config.logDirectory,t))}catch(r){console.error(`Failed to delete temp file ${t}:`,r)}}catch(e){console.error("Error cleaning up temporary files:",e)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(e){if(!e)return"";return`${this.tagFormat.prefix}${e}${this.tagFormat.suffix}`}formatFileTimestamp(e){return`[${e.toISOString()}]`}formatConsoleTimestamp(e){return this.shouldStyleConsole()?te.gray(e.toLocaleTimeString()):e.toLocaleTimeString()}shouldStyleConsole(){if(!this.fancy||Fe())return!1;let e=typeof fe.env.NO_COLOR<"u",t=fe.env.FORCE_COLOR==="0";if(e||t)return!1;return!!(typeof fe.stderr<"u"&&fe.stderr.isTTY||typeof fe.stdout<"u"&&fe.stdout.isTTY)}formatConsoleMessage(e){let{timestamp:t,icon:r="",tag:n="",message:i,level:s,showTimestamp:o=!0}=e,a=(h)=>h.replace(this.ANSI_PATTERN,"");if(!this.fancy){let h=[];if(o)h.push(t);if(s==="warning")h.push("WARN");else if(s==="error")h.push("ERROR");else if(r)h.push(r.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(n)h.push(n.replace(/[[\]]/g,""));return h.push(i),h.join(" ")}let f=fe.stdout.columns||120,c="";if(s==="warning"||s==="error")c=`${r} ${i}`;else if(s==="info"||s==="success")c=`${r} ${n} ${i}`;else c=`${r} ${n} ${te.cyan(i)}`;if(!o)return c.trim();let u=a(c).trim().length,l=a(t).length,p=Math.max(1,f-2-u-l);return`${c.trim()}${" ".repeat(p)}${t}`}formatMessage(e,t){if(t.length===1&&Array.isArray(t[0]))return e.replace(/\{(\d+)\}/g,(s,o)=>{let a=Number.parseInt(o,10);return a<t[0].length?String(t[0][a]):s});let r=/%([sdijfo%])/g,n=0,i=e.replace(r,(s,o)=>{if(o==="%")return"%";if(n>=t.length)return s;let a=t[n++];switch(o){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 s}});if(n<t.length)i+=` ${t.slice(n).map((s)=>typeof s==="object"?JSON.stringify(s,null,2):String(s)).join(" ")}`;return i}formatMarkdown(e){if(!e)return e;let t=e;return t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(r,n,i)=>{let s=te.underline(te.blue(n)),o=this.toAbsoluteFilePath(i);if(o&&this.shouldStyleConsole()&&this.supportsHyperlinks()){let a=`file://${encodeURI(o)}`,f="\x1B]8;;",c="\x1B\\";return`\x1B]8;;${a}\x1B\\${s}\x1B]8;;\x1B\\`}if(this.shouldStyleConsole()&&this.supportsHyperlinks())return`\x1B]8;;${i}\x1B\\${s}\x1B]8;;\x1B\\`;return s}),t=t.replace(/`([^`]+)`/g,(r,n)=>te.bgGray(n)),t=t.replace(/\*\*([^*]+)\*\*/g,(r,n)=>te.bold(n)),t=t.replace(/(?<!\*)\*([^*]+)\*(?!\*)/g,(r,n)=>te.italic(n)),t=t.replace(/(?<!_)_([^_]+)_(?!_)/g,(r,n)=>te.italic(n)),t=t.replace(/~([^~]+)~/g,(r,n)=>te.strikethrough(n)),t}supportsHyperlinks(){if(Fe())return!1;let e=fe.env;if(!e)return!1;if(e.TERM_PROGRAM==="iTerm.app"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="WezTerm")return!0;if(e.WT_SESSION)return!0;if(e.TERM==="xterm-kitty")return!0;let t=e.VTE_VERSION?Number.parseInt(e.VTE_VERSION,10):0;if(!Number.isNaN(t)&&t>=5000)return!0;return!1}toAbsoluteFilePath(e){try{let t=e;if(t.startsWith("file://"))t=t.replace(/^file:\/\//,"");if(t.startsWith("~")){let r=fe.env.HOME||"";if(r)t=t.replace(/^~(?=$|\/)/,r)}if(sh(t)||t.startsWith("./")||t.startsWith("../"))t=oh(t);else return null;return si(t)?t:null}catch{return null}}buildOutputTexts(e){let t=this.shouldStyleConsole()?this.formatMarkdown(e):e,r=e.replace(this.ANSI_PATTERN,"");return{consoleText:t,fileText:r}}async log(e,t,...r){if(!this.shouldLog(e))return;let n=new Date,i=this.formatConsoleTimestamp(n),s=this.formatFileTimestamp(n),o,a;if(t instanceof Error)o=t.message,a=t.stack;else o=this.formatMessage(t,r);let{consoleText:f,fileText:c}=this.buildOutputTexts(o);if(this.shouldStyleConsole()){let l=this.options.showIcons===!1?"":bd[e],p=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",h;switch(e){case"debug":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:te.gray(f),level:e}),console.error(h);break;case"info":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.warn(h);break;case"success":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:te.green(f),level:e}),console.error(h);break;case"warning":h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.warn(h);break;case"error":if(h=this.formatConsoleMessage({timestamp:i,icon:l,tag:p,message:f,level:e}),console.error(h),a){let w=a.split(`
|
|
183
|
+
`);for(let A of w)if(A.trim()&&!A.includes(o))console.error(this.formatConsoleMessage({timestamp:i,message:te.gray(` ${A}`),level:e,showTimestamp:!1}))}break}}else if(!Fe()){if(console.error(`${s} ${this.environment}.${e.toUpperCase()}: ${o}`),a)console.error(a)}let u=`${s} ${this.environment}.${e.toUpperCase()}: ${c}
|
|
184
|
+
`;if(a)u+=`${a}
|
|
185
|
+
`;if(u=u.replace(this.ANSI_PATTERN,""),this.shouldWriteToFile())await this.writeToFile(u)}progress(e,t=""){let r={update:(i,s)=>{},finish:(i)=>{},interrupt:(i,s)=>{}};if(!this.enabled)return r;let n=30;if(this.activeProgressBar={total:Math.max(1,e||1),current:0,message:t||"",barLength:n,lastRenderedLine:""},this.shouldStyleConsole()&&!Fe()&&fe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar);return{update:(i,s)=>{if(!this.enabled||!this.activeProgressBar)return;if(this.activeProgressBar.current=Math.min(Math.max(0,i),this.activeProgressBar.total),s!==void 0)this.activeProgressBar.message=s;if(this.shouldStyleConsole()&&!Fe()&&fe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)},finish:(i)=>{if(!this.activeProgressBar)return;this.finishProgressBar(this.activeProgressBar,i)},interrupt:(i,s="info")=>{if(!Fe()&&fe.stdout.isTTY)fe.stdout.write(`
|
|
186
|
+
`);if(this[s==="warning"?"warn":s](i),this.activeProgressBar&&this.shouldStyleConsole()&&!Fe()&&fe.stdout.isTTY)this.renderProgressBar(this.activeProgressBar)}}}time(e){let t=performance.now();if(this.shouldStyleConsole()){let r=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",n=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:n,icon:this.options.showIcons===!1?"":te.blue("\u25D0"),tag:r,message:`${te.cyan(e)}...`}))}return async(r)=>{if(!this.enabled)return;let n=performance.now(),i=Math.round(n-t),s=`${e} completed in ${i}ms`,o=new Date,a=this.formatConsoleTimestamp(o),f=`${this.formatFileTimestamp(o)} ${this.environment}.INFO: ${s}`;if(r)f+=` ${JSON.stringify(r)}`;if(f+=`
|
|
187
|
+
`,f=f.replace(this.ANSI_PATTERN,""),this.shouldStyleConsole()){let c=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"";console.error(this.formatConsoleMessage({timestamp:a,icon:this.options.showIcons===!1?"":te.green("\u2713"),tag:c,message:`${s}${r?` ${JSON.stringify(r)}`:""}`}))}else if(!Fe())console.error(f.trim());if(this.shouldWriteToFile())await this.writeToFile(f)}}async debug(e,...t){await this.log("debug",e,...t)}async info(e,...t){await this.log("info",e,...t)}async success(e,...t){await this.log("success",e,...t)}async warn(e,...t){await this.log("warning",e,...t)}async error(e,...t){await this.log("error",e,...t)}validateEncryptionConfig(){if(!this.config.rotation)return!1;if(typeof this.config.rotation==="boolean")return!1;let e=this.config.rotation,{encrypt:t}=e;return!!t}async only(e){if(!this.enabled)return;return await e()}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}extend(e){let t=`${this.name}:${e}`,r=new Pi(t,{...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(r),r}createReadStream(){if(Fe())throw Error("createReadStream is not supported in browser environments");if(!si(this.currentLogFile))throw Error(`Log file does not exist: ${this.currentLogFile}`);return Ca(this.currentLogFile,{encoding:"utf8"})}async decrypt(e){if(!this.validateEncryptionConfig())throw Error("Encryption is not configured");let t=this.config.rotation;if(!t.encrypt||typeof t.encrypt==="boolean")throw Error("Invalid encryption configuration");if(!this.currentKeyId||!this.keys.has(this.currentKeyId))throw Error("No valid encryption key available");let r=this.keys.get(this.currentKeyId);try{let n=dt.isBuffer(e)?e:dt.from(e,"base64"),i=n.subarray(0,16),s=n.subarray(n.length-16),o=n.subarray(16,n.length-16),a=eh("aes-256-gcm",r,i);a.setAuthTag(s);let f=a.update(o),c=a.final(),u=f.length+c.length,l=dt.allocUnsafe(u);return f.copy(l,0),c.copy(l,f.length),l.toString("utf8")}catch(n){throw Error(`Decryption failed: ${n instanceof Error?n.message:String(n)}`)}}getLevel(){return this.config.level}getLogDirectory(){return this.config.logDirectory}getFormat(){return this.config.format}getRotationConfig(){return this.config.rotation}isBrowserMode(){return Fe()}isServerMode(){return!Fe()}setTestEncryptionKey(e,t){this.currentKeyId=e,this.keys.set(e,t)}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(e){if(!this.enabled)return;let t=new Date,r=this.formatConsoleTimestamp(t),n=this.formatFileTimestamp(t),{consoleText:i,fileText:s}=this.buildOutputTexts(e);if(this.shouldStyleConsole()){let a=i.split(`
|
|
188
|
+
`),f=Math.max(...a.map((p)=>p.length))+2,c=`\u250C${"\u2500".repeat(f)}\u2510`,u=`\u2514${"\u2500".repeat(f)}\u2518`,l=a.map((p)=>{return this.formatConsoleMessage({timestamp:r,message:te.cyan(p),showTimestamp:!1})});console.error(this.formatConsoleMessage({timestamp:r,message:te.cyan(c),showTimestamp:!1})),l.forEach((p)=>console.error(p)),console.error(this.formatConsoleMessage({timestamp:r,message:te.cyan(u),showTimestamp:!1}))}else if(!Fe())console.error(`${n} ${this.environment}.INFO: [BOX] ${s}`);let o=`${n} ${this.environment}.INFO: [BOX] ${s}
|
|
189
|
+
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(o)}async prompt(e){if(Fe())return Promise.resolve(!0);return new Promise((t)=>{console.error(`${te.cyan("?")} ${e} (y/n) `);let r=(n)=>{let i=n.toString().trim().toLowerCase();fe.stdin.removeListener("data",r);try{if(typeof fe.stdin.setRawMode==="function")fe.stdin.setRawMode(!1)}catch{}fe.stdin.pause(),console.error(""),t(i==="y"||i==="yes")};try{if(typeof fe.stdin.setRawMode==="function")fe.stdin.setRawMode(!0)}catch{}fe.stdin.resume(),fe.stdin.once("data",r)})}setFancy(e){this.fancy=e}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(e,...t){if(!this.enabled)return;let r=e;if(t&&t.length>0){let o=/%([sdijfo%])/g,a=0;if(r=e.replace(o,(f,c)=>{if(c==="%")return"%";if(a>=t.length)return f;let u=t[a++];switch(c){case"s":return String(u);case"d":case"i":return Number(u).toString();case"j":case"o":return JSON.stringify(u,null,2);default:return f}}),a<t.length)r+=` ${t.slice(a).map((f)=>typeof f==="object"?JSON.stringify(f,null,2):String(f)).join(" ")}`}let{consoleText:n,fileText:i}=this.buildOutputTexts(r);if(this.shouldStyleConsole()){let o=this.options.showTags!==!1&&this.name?te.gray(this.formatTag(this.name)):"",a=this.options.showIcons===!1?"":`${te.blue("\u25D0")} `;console.error(`${a}${o} ${te.cyan(n)}`)}let s=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${i}
|
|
190
|
+
`.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(s)}renderProgressBar(e,t=!1){if(!this.enabled||!this.shouldStyleConsole()||!fe.stdout.isTTY)return;let r=Math.min(100,Math.max(0,Math.round(e.current/e.total*100))),n=Math.round(e.barLength*r/100),i=e.barLength-n,s=te.green("\u2501".repeat(n)),o=te.gray("\u2501".repeat(i)),a=`[${s}${o}]`,f=`${r}%`.padStart(4),c=e.message?` ${e.message}`:"",u=this.options.showIcons===!1?"":t||r===100?te.green("\u2713"):te.blue("\u25B6"),l=this.options.showTags!==!1&&this.name?` ${te.gray(this.formatTag(this.name))}`:"",p=`\r${u}${l} ${a} ${f}${c}`,h=fe.stdout.columns||80,w=" ".repeat(Math.max(0,h-p.replace(this.ANSI_PATTERN,"").length));if(e.lastRenderedLine=`${p}${w}`,fe.stdout.write(e.lastRenderedLine),t)fe.stdout.write(`
|
|
191
|
+
`)}finishProgressBar(e,t){if(!this.enabled||!this.fancy||Fe()||!fe.stdout.isTTY){this.activeProgressBar=null;return}if(e.current<e.total)e.current=e.total;if(t)e.message=t;this.renderProgressBar(e,!0),this.activeProgressBar=null}async clear(e={}){if(Fe()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let t=await oi(this.config.logDirectory),r=[];for(let n of t){if(!(e.name?new RegExp(e.name.replace("*",".*")).test(n):n.startsWith(this.name))||!n.endsWith(".log"))continue;let i=Qt(this.config.logDirectory,n);if(e.before)try{if((await zt(i)).mtime>=e.before)continue}catch(s){console.error(`Failed to get stats for file ${i}:`,s);continue}r.push(i)}if(r.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${r.length} log file(s)...`);for(let n of r)try{await ai(n),console.warn(`Deleted log file: ${n}`)}catch(i){console.error(`Failed to delete log file ${n}:`,i)}console.warn("Log clearing process finished.")}catch(t){console.error("Error during log clearing process:",t)}}}async function Ad(e,t={}){let{maxRetries:r=3,retryDelay:n=1000,isRetryable:i=()=>!0,fallback:s}=t,o=Error("Unknown error occurred");for(let a=0;a<=r;a++)try{return await e()}catch(f){if(o=f instanceof Error?f:Error(String(f)),a===r||!i(o))break;if(n>0)await new Promise((c)=>setTimeout(c,n))}if(s!==void 0)return s;throw o instanceof Error?o:Error(`Unknown error: ${String(o)}`)}class as{defaultParsers;constructor(){this.defaultParsers=[{name:"boolean",canParse:(e,t)=>t==="boolean"||["true","false","1","0","yes","no"].includes(e.toLowerCase()),parse:(e)=>{let t=e.toLowerCase();return["true","1","yes"].includes(t)}},{name:"number",canParse:(e,t)=>t==="number"||!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e)),parse:(e)=>{let t=Number(e);if(Number.isNaN(t))throw TypeError(`Cannot parse "${e}" as number`);return t}},{name:"array",canParse:(e,t)=>t==="array"||e.startsWith("[")||e.includes(","),parse:(e)=>{try{let t=JSON.parse(e);if(Array.isArray(t))return t}catch{}return e.split(",").map((t)=>t.trim())}},{name:"json",canParse:(e,t)=>t==="object"||(e.startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]")),parse:(e)=>{try{return JSON.parse(e)}catch(t){throw Error(`Cannot parse "${e}" as JSON: ${t}`)}}}]}async applyEnvironmentVariables(e,t,r={}){let{prefix:n,useCamelCase:i=!0,useBackwardCompatibility:s=!0,customParsers:o={},verbose:a=!1,trackPerformance:f=!0}=r,c=async()=>{if(!e)return{config:t,source:{type:"environment",priority:50,timestamp:new Date}};let u=n||this.generateEnvPrefix(e),l={...t};return this.processObject(l,[],u,{useCamelCase:i,useBackwardCompatibility:s,customParsers:o,verbose:a,configName:e}),{config:l,source:{type:"environment",priority:50,timestamp:new Date}}};if(f)return zn.track("applyEnvironmentVariables",c,{configName:e});return c()}generateEnvPrefix(e){return e.toUpperCase().replace(/-/g,"_")}formatEnvKey(e,t){if(!t)return e.toUpperCase();return e.replace(/([A-Z])/g,"_$1").toUpperCase()}processObject(e,t,r,n){for(let[i,s]of Object.entries(e)){let o=[...t,i],a=o.map((u)=>this.formatEnvKey(u,n.useCamelCase)),f=`${r}_${a.join("_")}`,c=n.useBackwardCompatibility?`${r}_${o.map((u)=>u.toUpperCase()).join("_")}`:null;if(n.verbose);if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.processObject(s,o,r,n);else{let u=li.env[f]||(c?li.env[c]:void 0);if(u!==void 0){if(n.verbose){let l=li.env[f]?f:c}try{e[i]=this.parseEnvironmentValue(u,typeof s,f,n.customParsers,n.configName)}catch(l){if(l instanceof os)throw l;throw rr.envVar(f,u,typeof s,n.configName)}}}}}parseEnvironmentValue(e,t,r,n,i){for(let[s,o]of Object.entries(n))try{return o(e)}catch{continue}for(let s of this.defaultParsers)if(s.canParse(e,t))try{return s.parse(e)}catch{throw rr.envVar(r,e,`${t} (via ${s.name} parser)`,i)}return e}getEnvironmentVariables(e){let t={},r=e.toUpperCase();for(let[n,i]of Object.entries(li.env))if(n.startsWith(r)&&i!==void 0)t[n]=i;return t}validateEnvironmentVariable(e,t,r){let n=[];if(!/^[A-Z_][A-Z0-9_]*$/.test(e))n.push(`Environment variable key "${e}" should only contain uppercase letters, numbers, and underscores`);if(r)try{this.parseEnvironmentValue(e,t,r,{})}catch(i){n.push(`Cannot parse value "${t}" as ${r}: ${i}`)}return{isValid:n.length===0,errors:n}}generateEnvVarDocs(e,t,r={}){let{prefix:n,format:i="text"}=r,s=n||this.generateEnvPrefix(e),o=[];switch(this.extractEnvVarInfo(t,[],s,o),i){case"markdown":return this.formatAsMarkdown(o,e);case"json":return JSON.stringify(o,null,2);default:return this.formatAsText(o,e)}}extractEnvVarInfo(e,t,r,n){for(let[i,s]of Object.entries(e)){let o=[...t,i],a=`${r}_${o.map((f)=>this.formatEnvKey(f,!0)).join("_")}`;if(typeof s==="object"&&s!==null&&!Array.isArray(s))this.extractEnvVarInfo(s,o,r,n);else n.push({key:a,type:Array.isArray(s)?"array":typeof s,description:`Configuration for ${o.join(".")}`,example:this.generateExample(s)})}}generateExample(e){if(Array.isArray(e))return JSON.stringify(e);if(typeof e==="object"&&e!==null)return JSON.stringify(e);return String(e)}formatAsText(e,t){let r=`Environment Variables for ${t}:
|
|
192
|
+
|
|
193
|
+
`;for(let n of e)r+=`${n.key}
|
|
194
|
+
`,r+=` Type: ${n.type}
|
|
195
|
+
`,r+=` Description: ${n.description}
|
|
196
|
+
`,r+=` Example: ${n.example}
|
|
197
|
+
|
|
198
|
+
`;return r}formatAsMarkdown(e,t){let r=`# Environment Variables for ${t}
|
|
199
|
+
|
|
200
|
+
`;r+=`| Variable | Type | Description | Example |
|
|
201
|
+
`,r+=`|----------|------|-------------|----------|
|
|
202
|
+
`;for(let n of e)r+=`| \`${n.key}\` | ${n.type} | ${n.description} | \`${n.example}\` |
|
|
203
|
+
`;return r}}function vd(e,t,r={}){return gl(e,t,r,new WeakMap)}function gl(e,t,r,n){let{arrayMergeMode:i="replace",skipNullish:s=!1,customMerger:o}=r;if(t===null||t===void 0)return s?e:t;if(o){let a=o(e,t);if(a!==void 0)return a}if(Array.isArray(t)||Array.isArray(e))return pl(e,t,i,n);if(!et(t)||!et(e))return t;return kd(e,t,r,n)}function pl(e,t,r,n){if(Array.isArray(t)&&!Array.isArray(e))return t;if(Array.isArray(e)&&!Array.isArray(t))return t;if(Array.isArray(t)&&Array.isArray(e))switch(r){case"replace":return t;case"concat":return xd(e,t);case"smart":return Ed(e,t,n);default:return t}return t}function xd(e,t){let r=[...t];for(let n of e)if(!r.some((i)=>Xn(i,n)))r.push(n);return r}function Ed(e,t,r){if(t.length===0)return e;if(e.length===0)return t;if(et(t[0])&&et(e[0]))return Od(e,t,r);if(t.every((n)=>typeof n==="string")&&e.every((n)=>typeof n==="string")){let n=[...t];for(let i of e)if(!n.includes(i))n.push(i);return n}return t}function Od(e,t,r){let n=[...t];for(let i of e){if(!et(i)){n.push(i);continue}let s=["id","name","key","path","type"],o=!1;for(let a of s)if(a in i){if(n.find((f)=>et(f)&&(a in f)&&f[a]===i[a])){o=!0;break}}if(!o)n.push(i)}return n}function kd(e,t,r,n){let i=t;if(et(i)&&n.has(i))return n.get(i);let s={...e};if(et(i))n.set(i,s);for(let o in i){if(!Object.prototype.hasOwnProperty.call(i,o))continue;let a=i[o],f=s[o];if(r.skipNullish&&(a===null||a===void 0))continue;if(a===null||a===void 0){s[o]=a;continue}if(et(a)&&et(f))s[o]=gl(f,a,r,n);else if(Array.isArray(a)||Array.isArray(f))s[o]=pl(f,a,r.arrayMergeMode||"smart",n);else s[o]=a}return s}function yl(e,t,r="replace"){return vd(e,t,{arrayMergeMode:r==="replace"?"replace":"smart",skipNullish:!0})}function Xn(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!Xn(e[r],t[r]))return!1;return!0}if(et(e)&&et(t)){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i of r){if(!Object.prototype.hasOwnProperty.call(t,i))return!1;if(!Xn(e[i],t[i]))return!1}return!0}return!1}function et(e){return Boolean(e&&typeof e==="object"&&!Array.isArray(e))}class $l{extensions=[".ts",".js",".mjs",".cjs",".json",".mts",".cts"];async loadFromPath(e,t,r={}){let{arrayStrategy:n="replace",useCache:i=!0,cacheTtl:s,trackPerformance:o=!0,verbose:a=!1}=r;if(i){let c=bi.getWithFileCheck("file",e);if(c){if(a)console.log(`Configuration loaded from cache: ${e}`);return c}}let f=async()=>{if(!fi(e))return null;try{let c=`?t=${Date.now()}`,u=await import(e+c),l=u.default||u,p="default"in u,h=Object.keys(u).length>0;if(!p&&!h)throw new Ti(e,Error("Configuration file is empty and exports nothing"),"unknown");if(typeof l!=="object"||l===null||Array.isArray(l))throw new Ti(e,Error("Configuration must export a valid object"),"unknown");let w={config:yl(t,l,n),source:{type:"file",path:e,priority:100,timestamp:new Date}};if(i)bi.setWithFileCheck("file",w,e,s);return w}catch(c){throw c instanceof Error?rr.configLoad(e,c):rr.configLoad(e,Error(String(c)))}};if(o)return zn.track("loadFromPath",f,{path:e});return f()}async tryLoadFromPaths(e,t,r={}){for(let n of e)try{let i=await this.loadFromPath(n,t,r);if(i)return i}catch(i){if(i instanceof Error&&i.name==="ConfigLoadError")throw i;if(r.verbose)console.warn(`Failed to load config from ${n}:`,i)}return null}generateConfigPaths(e,t,r){let n=this.generateNamePatterns(e,r),i=[];for(let s of n)for(let o of this.extensions)i.push(Pn(t,`${s}${o}`));return i}generateNamePatterns(e,t){let r=[];if(r.push("config",".config"),e)r.push(e,`.${e}.config`,`${e}.config`,`.${e}`);let n=t===void 0?[]:Array.isArray(t)?t:[t];for(let s of n){if(!s)continue;if(r.push(s,`.${s}.config`,`${s}.config`,`.${s}`),e)r.push(`${e}.${s}.config`,`.${e}.${s}.config`)}let i=new Set;return r.filter((s)=>{if(!s||i.has(s))return!1;return i.add(s),!0})}checkFileAccess(e){return Ad(async()=>{return fi(e)},{maxRetries:2,retryDelay:100,fallback:!1})}async discoverConfigFiles(e,t,r){let n=[];if(!fi(e))return n;if(t||r){let i=this.generateNamePatterns(t||"",r);for(let s of i)for(let o of this.extensions){let a=Pn(e,`${s}${o}`);if(await this.checkFileAccess(a))n.push(a)}}else try{let{readdirSync:i}=await import("fs"),s=i(e);for(let o of s)if(this.looksLikeConfigFile(o)){let a=Pn(e,o);if(await this.checkFileAccess(a))n.push(a)}}catch{return[]}return n}looksLikeConfigFile(e){return[/\.config\.(ts|js|mjs|cjs|json|mts|cts)$/,/^\..*\.(ts|js|mjs|cjs|json|mts|cts)$/,/config\.(ts|js|mjs|cjs|json|mts|cts)$/].some((t)=>t.test(e))}async validateConfigFile(e){let t=[];try{if(!fi(e))return t.push("Configuration file does not exist"),t;let r=await import(e),n=r.default||r;if(n===void 0)t.push("Configuration file must export a default value or named exports");else if(typeof n!=="object"||n===null)t.push("Configuration must be an object");else if(Array.isArray(n))t.push("Configuration cannot be an array at the root level");if(e.endsWith(".json"))try{let{readFileSync:i}=await import("fs"),s=i(e,"utf8");JSON.parse(s)}catch(i){t.push(`Invalid JSON syntax: ${i}`)}}catch(r){t.push(`Failed to load configuration file: ${r}`)}return t}async getFileModificationTime(e){try{let{statSync:t}=await import("fs");return t(e).mtime}catch{return null}}async preloadConfigurations(e,t={}){let r=new Map;return await Promise.allSettled(e.map(async(n)=>{try{let i=await this.loadFromPath(n,{},t);if(i)r.set(n,i.config)}catch(i){if(t.verbose)console.warn(`Failed to preload ${n}:`,i)}})),r}}class wl{async validateConfiguration(e,t,r={}){let{stopOnFirstError:n=!1,validateRequired:i=!0,validateTypes:s=!0,customRules:o=[],trackPerformance:a=!0,verbose:f=!1}=r,c=async()=>{let u=[],l=[],p={stopOnFirstError:n,validateRequired:i,validateTypes:s,customRules:o,trackPerformance:a,verbose:f};try{if(typeof t==="string")return await this.validateWithSchemaFile(e,t,p);else if(Array.isArray(t))return this.validateWithRules(e,[...t,...o],p);else return this.validateWithJSONSchema(e,t,p)}catch(h){return u.push({path:"",message:`Validation failed: ${h}`,rule:"system"}),{isValid:!1,errors:u,warnings:l}}};if(a)return await zn.track("validateConfiguration",c);return c()}async validateWithSchemaFile(e,t,r){try{if(!lh(t))throw new Ri(t,[{path:"",message:"Schema file does not exist"}]);let n=await import(t),i=n.default||n;if(Array.isArray(i))return this.validateWithRules(e,i,r);else return this.validateWithJSONSchema(e,i,r)}catch(n){throw new Ri(t,[{path:"",message:`Failed to load schema: ${n}`}])}}validateWithJSONSchema(e,t,r){let n=[],i=[];return this.validateObjectAgainstSchema(e,t,"",n,i,r),{isValid:n.length===0,errors:n,warnings:i}}validateObjectAgainstSchema(e,t,r,n,i,s){if(s.validateTypes&&t.type){let o=Array.isArray(e)?"array":typeof e,a=Array.isArray(t.type)?t.type:[t.type];if(!a.includes(o)){if(n.push({path:r,message:`Expected type ${a.join(" or ")}, got ${o}`,expected:a.join(" or "),actual:o,rule:"type"}),s.stopOnFirstError)return}}if(t.enum&&!t.enum.includes(e)){if(n.push({path:r,message:`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"}),s.stopOnFirstError)return}if(typeof e==="string"){if(t.minLength!==void 0&&e.length<t.minLength)n.push({path:r,message:`String length must be at least ${t.minLength}`,expected:`>= ${t.minLength}`,actual:e.length,rule:"minLength"});if(t.maxLength!==void 0&&e.length>t.maxLength)n.push({path:r,message:`String length must not exceed ${t.maxLength}`,expected:`<= ${t.maxLength}`,actual:e.length,rule:"maxLength"});if(t.pattern){if(!new RegExp(t.pattern).test(e))n.push({path:r,message:`String does not match pattern ${t.pattern}`,expected:t.pattern,actual:e,rule:"pattern"})}}if(typeof e==="number"){if(t.minimum!==void 0&&e<t.minimum)n.push({path:r,message:`Value must be at least ${t.minimum}`,expected:`>= ${t.minimum}`,actual:e,rule:"minimum"});if(t.maximum!==void 0&&e>t.maximum)n.push({path:r,message:`Value must not exceed ${t.maximum}`,expected:`<= ${t.maximum}`,actual:e,rule:"maximum"})}if(Array.isArray(e)&&t.items)for(let o=0;o<e.length;o++){let a=r?`${r}[${o}]`:`[${o}]`;if(this.validateObjectAgainstSchema(e[o],t.items,a,n,i,s),s.stopOnFirstError&&n.length>0)return}if(e&&typeof e==="object"&&!Array.isArray(e)){let o=e;if(s.validateRequired&&t.required){for(let a of t.required)if(!(a in o)){if(n.push({path:r?`${r}.${a}`:a,message:`Missing required property '${a}'`,expected:"required",rule:"required"}),s.stopOnFirstError)return}}if(t.properties){for(let[a,f]of Object.entries(t.properties))if(a in o){let c=r?`${r}.${a}`:a;if(this.validateObjectAgainstSchema(o[a],f,c,n,i,s),s.stopOnFirstError&&n.length>0)return}}if(t.additionalProperties===!1){let a=new Set(Object.keys(t.properties||{}));for(let f of Object.keys(o))if(!a.has(f))i.push({path:r?`${r}.${f}`:f,message:`Additional property '${f}' is not allowed`,rule:"additionalProperties"})}}}validateWithRules(e,t,r){let n=[],i=[];for(let s of t)try{let o=this.getValueByPath(e,s.path),a=this.validateWithRule(o,s,s.path);if(n.push(...a),r.stopOnFirstError&&n.length>0)break}catch(o){n.push({path:s.path,message:`Rule validation failed: ${o}`,rule:"system"})}return{isValid:n.length===0,errors:n,warnings:i}}validateWithRule(e,t,r){let n=[];if(t.required&&(e===void 0||e===null))return n.push({path:r,message:t.message||`Property '${r}' is required`,expected:"required",rule:"required"}),n;if(e===void 0||e===null)return n;if(t.type){let i=Array.isArray(e)?"array":typeof e;if(i!==t.type)n.push({path:r,message:t.message||`Expected type ${t.type}, got ${i}`,expected:t.type,actual:i,rule:"type"})}if(t.min!==void 0){let i=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(i<t.min)n.push({path:r,message:t.message||`Value must be at least ${t.min}`,expected:`>= ${t.min}`,actual:i,rule:"min"})}if(t.max!==void 0){let i=Array.isArray(e)?e.length:typeof e==="string"?e.length:typeof e==="number"?e:0;if(i>t.max)n.push({path:r,message:t.message||`Value must not exceed ${t.max}`,expected:`<= ${t.max}`,actual:i,rule:"max"})}if(t.pattern&&typeof e==="string"){if(!t.pattern.test(e))n.push({path:r,message:t.message||`Value does not match pattern ${t.pattern}`,expected:t.pattern.toString(),actual:e,rule:"pattern"})}if(t.enum&&!t.enum.includes(e))n.push({path:r,message:t.message||`Value must be one of: ${t.enum.join(", ")}`,expected:t.enum.join(", "),actual:e,rule:"enum"});if(t.validator){let i=t.validator(e);if(i)n.push({path:r,message:t.message||i,rule:"custom"})}return n}getValueByPath(e,t){if(!t)return e;let r=t.split("."),n=e;for(let i of r)if(n&&typeof n==="object"&&i in n)n=n[i];else return;return n}generateRulesFromInterface(e){let t=[],r=e.matchAll(/(\w+)(\?)?:\s*(\w+)/g);for(let n of r){let[,i,s,o]=n;t.push({path:i,required:!s,type:this.mapTypeScriptType(o)})}return t}mapTypeScriptType(e){switch(e.toLowerCase()){case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"array":return"array";case"object":return"object";default:return"object"}}static createCommonRules(){return{server:[{path:"port",required:!0,type:"number",min:1,max:65535},{path:"host",required:!0,type:"string",min:1},{path:"ssl",type:"boolean"}],database:[{path:"url",required:!0,type:"string",min:1},{path:"pool",type:"number",min:1,max:100},{path:"timeout",type:"number",min:0}],api:[{path:"baseUrl",required:!0,type:"string",pattern:Sd},{path:"timeout",type:"number",min:0},{path:"retries",type:"number",min:0,max:10}]}}}function Td(e){if(!e)return"";let t=Array.isArray(e)?e.filter(Boolean):[e];if(t.length===0)return"";if(t.length===1)return` or alias "${t[0]}"`;return` or aliases ${t.map((r)=>`"${r}"`).join(", ")}`}class Cl{fileLoader=new $l;envProcessor=new as;validator=new wl;async loadConfig(e){let t=Date.now(),{cache:r,performance:n,schema:i,validate:s,...o}=e;try{if(r?.enabled){let f=this.checkCache(o.name||"",o);if(f)return f}let a;try{a=await this.loadConfigurationStrategies(o,!0,r)}catch(f){let c=o.__strictErrorHandling;if(f instanceof Error&&f.name==="ConfigNotFoundError"){if(c)throw f;a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`No configuration file found for "${o.name||"config"}", using defaults with environment variables`]}}else if(f instanceof Error&&f.name==="ConfigLoadError"){let u=f.message.includes("EACCES")||f.message.includes("EPERM")||f.message.includes("permission denied"),l=!u&&(f.message.includes("syntax")||f.message.includes("Expected")||f.message.includes("Unexpected")||f.message.includes("BuildMessage")||f.message.includes("errors building")),p=f.message.includes("Configuration must export a valid object")||f.message.includes("Configuration file is empty and exports nothing");if(c&&(p||u))throw f;if(l&&(!c||!p))a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:["Configuration file has syntax errors, using defaults with environment variables"]};else if(!c)a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading error, using defaults: ${f.message}`]};else throw f}else a={...await this.applyEnvironmentVariables(o.name||"",o.defaultConfig,o.checkEnv!==!1,o.verbose||!1),warnings:[`Configuration loading failed, using defaults: ${f instanceof Error?f.message:String(f)}`]}}if(i||s)await this.validateConfiguration(a.config,i,s,o.name);if(r?.enabled&&a)this.cacheResult(o.name||"",a,r,o);if(n?.enabled){let f={operation:"loadConfig",duration:Date.now()-t,configName:o.name,timestamp:new Date};if(n.onMetrics)n.onMetrics(f);if(n.slowThreshold&&f.duration>n.slowThreshold)mt.warn(`Slow configuration loading detected: ${f.duration}ms for ${o.name}`);a.metrics=f}return a}catch(a){if(a instanceof Error&&a.name==="ConfigNotFoundError")throw a;let f=Date.now()-t;throw mt.error(`Configuration loading failed after ${f}ms:`,[a instanceof Error?a:Error(String(a))]),a}}async loadConfigurationStrategies(e,t=!1,r){let{name:n="",alias:i,cwd:s,configDir:o,defaultConfig:a,checkEnv:f=!0,arrayStrategy:c="replace",verbose:u=!1}=e,l=s||Wi.cwd(),p=[],h=await this.loadLocalConfiguration(n,i,l,o,a,c,u,f,r);if(h)return p.push(...this.getLocalSearchPaths(n,i,l,o)),this.finalizeResult(h,p,f,n,u);let w=await this.loadHomeConfiguration(n,i,a,c,u,f);if(w)return p.push(...this.getHomeSearchPaths(n,i)),this.finalizeResult(w,p,f,n,u);let A=await this.loadPackageJsonConfiguration(n,i,l,a,c,u,f);if(A)return p.push(ze(l,"package.json")),this.finalizeResult(A,p,f,n,u);if(p.push(...this.getAllSearchPaths(n,i,l,o)),t)throw rr.configNotFound(n,p,i);return{...await this.applyEnvironmentVariables(n,a,f,u),warnings:[`No configuration file found for "${n}"${Td(i)}, using defaults with environment variables`]}}async loadLocalConfiguration(e,t,r,n,i,s,o,a,f){let c=a?ui(e,i,o):i,u=this.getLocalDirectories(r,n);for(let l of u){if(o)mt.info(`Searching for configuration in: ${l}`);let p=this.fileLoader.generateConfigPaths(e,l,t),h=await this.fileLoader.tryLoadFromPaths(p,c,{arrayStrategy:s,verbose:o,cacheTtl:f?.ttl,useCache:!f?.ttl||f.ttl>100});if(h){if(o)mt.success(`Configuration loaded from: ${h.source.path}`);return h}}return null}async loadHomeConfiguration(e,t,r,n,i,s){if(!e)return null;let o=s?ui(e,r,i):r,a=[ze(Ht(),".config",e),ze(Ht(),".config"),Ht()];for(let f of a){if(i)mt.info(`Checking home directory: ${f}`);let c=this.fileLoader.generateConfigPaths(e,f,t),u=await this.fileLoader.tryLoadFromPaths(c,o,{arrayStrategy:n,verbose:i});if(u){if(i)mt.success(`Configuration loaded from home directory: ${u.source.path}`);return u}}return null}async loadPackageJsonConfiguration(e,t,r,n,i,s,o){let a=o?ui(e,n,s):n;try{let f=ze(r,"package.json");if(!Au(f))return null;let c={};try{c=JSON.parse(vu(f,"utf8"))}catch(p){if(s)mt.warn("Failed to parse package.json:",[p instanceof Error?p:Error(String(p))]);return null}let u=c[e],l=e;if(!u&&t){let p=Array.isArray(t)?t:[t];for(let h of p){if(!h)continue;if(c[h]){u=c[h],l=h;break}}}if(u&&typeof u==="object"&&!Array.isArray(u)){if(s)mt.success(`Configuration loaded from package.json: ${l}`);return{config:yl(a,u,i),source:{type:"package.json",path:f,priority:30,timestamp:new Date}}}}catch(f){if(s)mt.warn("Failed to load package.json:",[f instanceof Error?f:Error(String(f))])}return null}async applyEnvironmentVariables(e,t,r,n){if(!r||!e||typeof t!=="object"||t===null||Array.isArray(t))return{config:t,source:{type:"default",priority:10,timestamp:new Date}};return{config:ui(e,t,n),source:{type:"environment",priority:20,timestamp:new Date}}}async finalizeResult(e,t,r,n,i){return{config:e.config,source:e.source,path:e.source.path}}async validateConfiguration(e,t,r,n){let i=[];if(r){let s=r(e);if(s)i.push(...s)}if(t){let s=await this.validator.validateConfiguration(e,t);if(!s.isValid)i.push(...s.errors.map((o)=>o.path?`${o.path}: ${o.message}`:o.message))}if(i.length>0)throw rr.configValidation(n||"unknown",i,n)}checkCache(e,t){let r=this.generateCacheKey(e,t);return bi.get(r)||null}cacheResult(e,t,r,n){let i=this.generateCacheKey(e,n);bi.set(i,t,void 0,r.ttl)}generateCacheKey(e,t){let r=[e];if(t.alias){let n=Array.isArray(t.alias)?t.alias.join(","):t.alias;r.push(`alias:${n}`)}if(t.cwd)r.push(`cwd:${t.cwd}`);if(t.configDir)r.push(`configDir:${t.configDir}`);if("checkEnv"in t)r.push(`checkEnv:${t.checkEnv}`);return r.join("|")}getLocalDirectories(e,t){return Array.from(new Set([e,ze(e,"config"),ze(e,".config"),t?ze(e,t):void 0].filter(Boolean)))}getAllSearchPaths(e,t,r,n){let i=[];return i.push(...this.getLocalSearchPaths(e,t,r,n)),i.push(...this.getHomeSearchPaths(e,t)),i.push(ze(r,"package.json")),i}getLocalSearchPaths(e,t,r,n){let i=this.getLocalDirectories(r,n),s=[];for(let o of i)s.push(...this.fileLoader.generateConfigPaths(e,o,t));return s}getHomeSearchPaths(e,t){if(!e)return[];let r=[ze(Ht(),".config",e),ze(Ht(),".config"),Ht()],n=[];for(let i of r)n.push(...this.fileLoader.generateConfigPaths(e,i,t));return n}async loadConfigWithResult(e){return this.loadConfig(e)}}function ui(e,t,r=!1){let n=new as,i=e.toUpperCase().replace(/[^A-Z0-9]/g,"_");function s(o,a=[]){let f={...o};for(let[c,u]of Object.entries(o)){let l=[...a,c],p=[`${i}_${l.join("_").toUpperCase()}`,`${i}_${l.map((A)=>A.toUpperCase()).join("")}`,`${i}_${l.map((A)=>A.replace(/([A-Z])/g,"_$1").toUpperCase()).join("")}`],h,w;for(let A of p)if(h=Wi.env[A],h!==void 0){w=A;break}if(h!==void 0&&w)if(typeof u==="boolean")f[c]=["true","1","yes"].includes(h.toLowerCase());else if(typeof u==="number"){let A=Number(h);if(!Number.isNaN(A))f[c]=A}else if(Array.isArray(u))try{f[c]=JSON.parse(h)}catch{f[c]=h.split(",").map((A)=>A.trim())}else f[c]=h;else if(u&&typeof u==="object"&&!Array.isArray(u))f[c]=s(u,l)}return f}return s(t)}var bi,zn,fh,ch=(e)=>e,hh=(e,t)=>{for(var r in t)fh(e,r,{get:t[r],enumerable:!0,configurable:!0,set:uh.bind(t,r)})},dh=(e,t)=>()=>(e&&(t=e(e=0)),t),Ka,za,tr,Ar,Qa,jh,_h,ka,di,Kn,Le,me,Jh,Sa,Kh,Ta,Hh,Yh,Dn,Gh,Ra,Wa,Mn,Vh,Zh,qh,Uh,mi,el,Xh,je,zh,Qh,Na,gi,Hn,Ne,ee,ed,Fa,td,Pa,rd,id,In,nd,Da,Ma,sd,Bn,od,ad,ld,fd,cd,pi,tl,ud,hd="0.15.6",Ve,Oi,Cr,Yn,Gn,ki,Vn,Zn,br,qn,Un,Ot,rl,il,it,$t,nl,sl,dd,gd,ol,Si,Ip,Ie,te,Bp,yd,Lp,$d,jp,_p,Ia,Jp,wd,Cd,Kp,Ba,Hp,Yp,Gp,Vp,Zp,Ln,bd,qp,nt,ll,Ti,fl,cl,os,ul,hl,Ri,dl,ml,rr,Sd,mt,Up,Xp,zp,Rd,bl;var Al=de(()=>{bi=new _a,zn=new Ja,fh=Object.defineProperty;Ka={};hh(Ka,{withErrorRecovery:()=>Ga,tryLoadConfig:()=>Mh,loadConfigWithResult:()=>Ph,loadConfig:()=>Xa,isRetryableError:()=>Sh,isConfigNotFoundError:()=>kh,isBunfigError:()=>Va,globalPerformanceMonitor:()=>Ar,globalCache:()=>tr,getEnvOrDefault:()=>Th,generateConfigTypes:()=>Ih,defaultGeneratedDir:()=>sl,defaultConfigDir:()=>nl,deepMergeWithArrayStrategy:()=>is,deepMerge:()=>Za,createLibraryConfig:()=>Bh,config:()=>Dh,bunfigPlugin:()=>Lh,applyEnvVarsToConfig:()=>$r,TypeGenerationError:()=>Zn,SchemaValidationError:()=>br,PluginError:()=>Un,PerformanceMonitor:()=>es,FileSystemError:()=>Vn,ErrorFactory:()=>Ot,EnvVarError:()=>ki,EnvProcessor:()=>Ni,ConfigValidator:()=>ns,ConfigValidationError:()=>Yn,ConfigNotFoundError:()=>Oi,ConfigMergeError:()=>Gn,ConfigLoader:()=>ss,ConfigLoadError:()=>Cr,ConfigFileLoader:()=>Fi,ConfigCache:()=>Qn,CacheUtils:()=>Qa,BunfigError:()=>Ve,BrowserConfigError:()=>qn,ArrayMergeStrategies:()=>rl});dd=dh(async()=>{za=import.meta.require,tr=new Qn,Ar=new es,Qa={createKey:mh,isEquivalent:gh,estimateMemoryUsage:ph},jh=wi(_n.cwd(),"config"),_h=wi(_n.cwd(),"src/generated"),ka=$i.env.CLARITY_LOG_DIR||Tu(wh(),"logs"),di={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:ka,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1},Kn=await Ch(),Le={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,reset:"\x1B[0m"},me=Le,Jh=Le.red,Sa=Le.green,Kh=Le.yellow,Ta=Le.blue,Hh=Le.magenta,Yh=Le.cyan,Dn=Le.white,Gh=Le.gray,Ra=Le.bgRed,Wa=Le.bgYellow,Mn=Le.bold,Vh=Le.dim,Zh=Le.italic,qh=Le.underline,Uh=Le.reset,mi={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},el={debug:"\uD83D\uDD0D",info:Ta("\u2139"),success:Sa("\u2713"),warning:Wa(Dn(Mn(" WARN "))),error:Ra(Dn(Mn(" ERROR ")))},Xh=new vi("stacks"),je=new vi("bunfig",{showTags:!0}),zh=Ke(wr.cwd(),"config"),Qh=Ke(wr.cwd(),"src/generated"),Na=yi.env.CLARITY_LOG_DIR||ku(xh(),"logs"),gi={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:Na,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1,writeToFile:!1},Hn=await Eh(),Ne={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bgGray:(e)=>`\x1B[100m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,strikethrough:(e)=>`\x1B[9m${e}\x1B[0m`,reset:"\x1B[0m"},ee=Ne,ed=Ne.red,Fa=Ne.green,td=Ne.yellow,Pa=Ne.blue,rd=Ne.magenta,id=Ne.cyan,In=Ne.white,nd=Ne.gray,Da=Ne.bgRed,Ma=Ne.bgYellow,sd=Ne.bgGray,Bn=Ne.bold,od=Ne.dim,ad=Ne.italic,ld=Ne.underline,fd=Ne.strikethrough,cd=Ne.reset,pi={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},tl={debug:"\uD83D\uDD0D",info:Pa("\u2139"),success:Fa("\u2713"),warning:Ma(In(Bn(" WARN "))),error:Da(In(Bn(" ERROR ")))},ud=new Ei("stacks"),Ve=class extends Error{timestamp;context;constructor(e,t={}){super(e);if(this.name=this.constructor.name,this.timestamp=new Date,this.context=t,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,timestamp:this.timestamp.toISOString(),context:this.context,stack:this.stack}}toString(){let e=Object.keys(this.context).length>0?` (${Object.entries(this.context).map(([t,r])=>`${t}: ${r}`).join(", ")})`:"";return`${this.name} [${this.code}]: ${this.message}${e}`}},Oi=class extends Ve{code="CONFIG_NOT_FOUND";constructor(e,t,r){let n=r?` or alias "${r}"`:"";super(`Configuration "${e}"${n} not found`,{configName:e,alias:r,searchPaths:t,searchPathCount:t.length})}},Cr=class extends Ve{code="CONFIG_LOAD_ERROR";constructor(e,t,r){super(`Failed to load configuration from "${e}": ${t.message}`,{configPath:e,configName:r,originalError:t.name,originalMessage:t.message});this.cause=t}},Yn=class extends Ve{code="CONFIG_VALIDATION_ERROR";constructor(e,t,r){super(`Configuration validation failed for "${e}"`,{configPath:e,configName:r,validationErrors:t,errorCount:t.length})}},Gn=class extends Ve{code="CONFIG_MERGE_ERROR";constructor(e,t,r,n){super(`Failed to merge configuration from "${e}" with "${t}": ${r.message}`,{sourcePath:e,targetPath:t,configName:n,originalError:r.name,originalMessage:r.message});this.cause=r}},ki=class extends Ve{code="ENV_VAR_ERROR";constructor(e,t,r,n){super(`Failed to parse environment variable "${e}" with value "${t}" as ${r}`,{envKey:e,envValue:t,expectedType:r,configName:n})}},Vn=class extends Ve{code="FILE_SYSTEM_ERROR";constructor(e,t,r){super(`File system ${e} failed for "${t}": ${r.message}`,{operation:e,path:t,originalError:r.name,originalMessage:r.message});this.cause=r}},Zn=class extends Ve{code="TYPE_GENERATION_ERROR";constructor(e,t,r){super(`Failed to generate types from "${e}" to "${t}": ${r.message}`,{configDir:e,outputPath:t,originalError:r.name,originalMessage:r.message});this.cause=r}},br=class extends Ve{code="SCHEMA_VALIDATION_ERROR";constructor(e,t,r){super(`Schema validation failed${r?` for config "${r}"`:""}`,{schemaPath:e,configName:r,validationErrors:t,errorCount:t.length})}},qn=class extends Ve{code="BROWSER_CONFIG_ERROR";constructor(e,t,r,n){super(`Failed to fetch configuration from "${e}": ${t} ${r}`,{endpoint:e,status:t,statusText:r,configName:n})}},Un=class extends Ve{code="PLUGIN_ERROR";constructor(e,t,r){super(`Plugin "${e}" failed during ${t}: ${r.message}`,{pluginName:e,operation:t,originalError:r.name,originalMessage:r.message});this.cause=r}},Ot={configNotFound(e,t,r){return new Oi(e,t,r)},configLoad(e,t,r){return new Cr(e,t,r)},configValidation(e,t,r){return new Yn(e,t,r)},configMerge(e,t,r,n){return new Gn(e,t,r,n)},envVar(e,t,r,n){return new ki(e,t,r,n)},fileSystem(e,t,r){return new Vn(e,t,r)},typeGeneration(e,t,r){return new Zn(e,t,r)},schemaValidation(e,t,r){return new br(e,t,r)},browserConfig(e,t,r,n){return new qn(e,t,r,n)},plugin(e,t,r){return new Un(e,t,r)}},rl={replace:"replace",concat:"concat",smart:"smart"},il=/^https?:\/\//,it=new Ei("bunfig",{showTags:!0}),$t=new ss,nl=He(Nt.cwd(),"config"),sl=He(Nt.cwd(),"src/generated")});gd=Ci.env.CLARITY_LOG_DIR||Xu(md(),"logs"),ol={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:gd,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1,writeToFile:!1},Si={...ol},Ip=(async()=>{try{let{loadConfig:e}=await dd().then(()=>Ka),t=await e({name:"clarity",alias:"logging",defaultConfig:ol,cwd:Ci.cwd()});if(t)Object.assign(Si,t)}catch{}return Si})();Ie={red:(e)=>`\x1B[31m${e}\x1B[0m`,green:(e)=>`\x1B[32m${e}\x1B[0m`,yellow:(e)=>`\x1B[33m${e}\x1B[0m`,blue:(e)=>`\x1B[34m${e}\x1B[0m`,magenta:(e)=>`\x1B[35m${e}\x1B[0m`,cyan:(e)=>`\x1B[36m${e}\x1B[0m`,white:(e)=>`\x1B[37m${e}\x1B[0m`,gray:(e)=>`\x1B[90m${e}\x1B[0m`,bgRed:(e)=>`\x1B[41m${e}\x1B[0m`,bgYellow:(e)=>`\x1B[43m${e}\x1B[0m`,bgGray:(e)=>`\x1B[100m${e}\x1B[0m`,bold:(e)=>`\x1B[1m${e}\x1B[0m`,dim:(e)=>`\x1B[2m${e}\x1B[0m`,italic:(e)=>`\x1B[3m${e}\x1B[0m`,underline:(e)=>`\x1B[4m${e}\x1B[0m`,strikethrough:(e)=>`\x1B[9m${e}\x1B[0m`,reset:"\x1B[0m"},te=Ie,Bp=Ie.red,yd=Ie.green,Lp=Ie.yellow,$d=Ie.blue,jp=Ie.magenta,_p=Ie.cyan,Ia=Ie.white,Jp=Ie.gray,wd=Ie.bgRed,Cd=Ie.bgYellow,Kp=Ie.bgGray,Ba=Ie.bold,Hp=Ie.dim,Yp=Ie.italic,Gp=Ie.underline,Vp=Ie.strikethrough,Zp=Ie.reset,Ln={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},bd={debug:"\uD83D\uDD0D",info:$d("\u2139"),success:yd("\u2713"),warning:Cd(Ia(Ba(" WARN "))),error:wd(Ia(Ba(" ERROR ")))};qp=new Pi("stacks");nt=class nt extends Error{timestamp;context;constructor(e,t={}){super(e);if(this.name=this.constructor.name,this.timestamp=new Date,this.context=t,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,timestamp:this.timestamp.toISOString(),context:this.context,stack:this.stack}}toString(){let e=Object.keys(this.context).length>0?` (${Object.entries(this.context).map(([t,r])=>`${t}: ${r}`).join(", ")})`:"";return`${this.name} [${this.code}]: ${this.message}${e}`}};ll=class ll extends nt{code="CONFIG_NOT_FOUND";constructor(e,t,r){let n=r===void 0?[]:Array.isArray(r)?r.filter(Boolean):[r],i="";if(n.length===1)i=` or alias "${n[0]}"`;else if(n.length>1)i=` or aliases ${n.map((s)=>`"${s}"`).join(", ")}`;super(`Configuration "${e}"${i} not found`,{configName:e,alias:r,searchPaths:t,searchPathCount:t.length})}};Ti=class Ti extends nt{code="CONFIG_LOAD_ERROR";constructor(e,t,r){super(`Failed to load configuration from "${e}": ${t.message}`,{configPath:e,configName:r,originalError:t.name,originalMessage:t.message});this.cause=t}};fl=class fl extends nt{code="CONFIG_VALIDATION_ERROR";constructor(e,t,r){super(`Configuration validation failed for "${e}"`,{configPath:e,configName:r,validationErrors:t,errorCount:t.length})}};cl=class cl extends nt{code="CONFIG_MERGE_ERROR";constructor(e,t,r,n){super(`Failed to merge configuration from "${e}" with "${t}": ${r.message}`,{sourcePath:e,targetPath:t,configName:n,originalError:r.name,originalMessage:r.message});this.cause=r}};os=class os extends nt{code="ENV_VAR_ERROR";constructor(e,t,r,n){super(`Failed to parse environment variable "${e}" with value "${t}" as ${r}`,{envKey:e,envValue:t,expectedType:r,configName:n})}};ul=class ul extends nt{code="FILE_SYSTEM_ERROR";constructor(e,t,r){super(`File system ${e} failed for "${t}": ${r.message}`,{operation:e,path:t,originalError:r.name,originalMessage:r.message});this.cause=r}};hl=class hl extends nt{code="TYPE_GENERATION_ERROR";constructor(e,t,r){super(`Failed to generate types from "${e}" to "${t}": ${r.message}`,{configDir:e,outputPath:t,originalError:r.name,originalMessage:r.message});this.cause=r}};Ri=class Ri extends nt{code="SCHEMA_VALIDATION_ERROR";constructor(e,t,r){super(`Schema validation failed${r?` for config "${r}"`:""}`,{schemaPath:e,configName:r,validationErrors:t,errorCount:t.length})}};dl=class dl extends nt{code="BROWSER_CONFIG_ERROR";constructor(e,t,r,n){super(`Failed to fetch configuration from "${e}": ${t} ${r}`,{endpoint:e,status:t,statusText:r,configName:n})}};ml=class ml extends nt{code="PLUGIN_ERROR";constructor(e,t,r){super(`Plugin "${e}" failed during ${t}: ${r.message}`,{pluginName:e,operation:t,originalError:r.name,originalMessage:r.message});this.cause=r}};rr={configNotFound(e,t,r){return new ll(e,t,r)},configLoad(e,t,r){return new Ti(e,t,r)},configValidation(e,t,r){return new fl(e,t,r)},configMerge(e,t,r,n){return new cl(e,t,r,n)},envVar(e,t,r,n){return new os(e,t,r,n)},fileSystem(e,t,r){return new ul(e,t,r)},typeGeneration(e,t,r){return new hl(e,t,r)},schemaValidation(e,t,r){return new Ri(e,t,r)},browserConfig(e,t,r,n){return new dl(e,t,r,n)},plugin(e,t,r){return new ml(e,t,r)}};Sd=/^https?:\/\//;mt=new Pi("bunfig",{showTags:!0});Up=new Cl;Xp=ze(Wi.cwd(),"config"),zp=ze(Wi.cwd(),"src/generated"),Rd={cwd:bu.cwd(),root:"./src",entrypoints:["**/*.{ts,tsx,mts,cts,vue,stx}"],outdir:"./dist",keepComments:!0,clean:!0,tsconfigPath:"./tsconfig.json",outputStructure:"mirror",verbose:!1,importOrder:["bun"],declarationMap:!1},bl=Rd});function ir(e,t){let r=1,n=1;for(let i=0;i<t;i++)if(e.charCodeAt(i)===10)r++,n=1;else n++;return{line:r,column:n}}function vl(e){let t=[],r=[],n=[],i={")":"(","]":"[","}":"{"},s=0,o=0,a=-1;for(let c=0;c<e.length;c++){let u=e.charCodeAt(c),l=e.charCodeAt(c+1);if(a!==-1){if(u===42&&l===47)r.push({start:a,end:c+2}),a=-1,c++;continue}if(s){if(u===92)c++;else if(u===s)r.push({start:o,end:c+1}),s=0;continue}if(u===47&&l===42){a=c,c++;continue}if(u===47&&l===47){let h=c;while(c<e.length&&e.charCodeAt(c)!==10)c++;r.push({start:h,end:c});continue}if(u===39||u===34||u===96){s=u,o=c;continue}let p=e[c];if(p==="("||p==="["||p==="{")n.push({char:p,offset:c});else if(i[p]){let h=n.pop();if(!h||h.char!==i[p])t.push({...ir(e,c),message:`Unexpected closing delimiter ${p}`,code:"DTSX1004"})}}if(s)t.push({...ir(e,o),message:"Unterminated string literal",code:"DTSX1002"});if(a!==-1)t.push({...ir(e,a),message:"Unterminated block comment",code:"DTSX1003"});for(let c of n)t.push({...ir(e,c.offset),message:`Unclosed delimiter ${c.char}`,code:"DTSX1001"});let f=[[/\b(?:interface|class|enum)\s*(?=[{=])/g,"Declaration name expected"],[/\bfunction\s*(?=\()/g,"Function name expected"],[/\(\s*:/g,"Parameter name expected"]];for(let[c,u]of f)for(let l of e.matchAll(c)){if(r.some((p)=>l.index>=p.start&&l.index<p.end))continue;t.push({...ir(e,l.index),message:u,code:"DTSX1005"})}for(let c of e.matchAll(/\btype\s*(?=[{=])/g)){if(r.some((l)=>c.index>=l.start&&c.index<l.end))continue;let u=e.slice(0,c.index).trimEnd();if(u.endsWith("import")||u.endsWith("export"))continue;t.push({...ir(e,c.index),message:"Declaration name expected",code:"DTSX1005"})}return t.sort((c,u)=>c.line-u.line||c.column-u.column)}var xl=()=>{};import{statSync as Wd}from"fs";import{readFile as Nd,readdir as py}from"fs/promises";import{createRequire as Fd}from"module";import{dirname as Pd,isAbsolute as El,join as Dd,resolve as Ol}from"path";import Md from"process";function fs(){return`${String.fromCharCode(47,47,35)} sourceMappingURL=`}async function vr(e,t,r="lf"){let n=t.replace(/\r\n/g,`
|
|
204
|
+
`);if(!n.endsWith(`
|
|
205
|
+
`))n+=`
|
|
206
|
+
`;if(r==="crlf")n=n.replace(/\n/g,`\r
|
|
207
|
+
`);await Ss(e,n)}function Id(e){let t="",r=0,n=0;while(r<e.length){let i=e.charCodeAt(r);if(n){if(t+=e[r],i===92&&r+1<e.length){t+=e[r+1],r+=2;continue}if(i===n)n=0;r++;continue}if(i===34){n=i,t+=e[r++];continue}if(i===47&&e.charCodeAt(r+1)===47){r+=2;while(r<e.length&&e.charCodeAt(r)!==10)r++;continue}if(i===47&&e.charCodeAt(r+1)===42){r+=2;while(r+1<e.length&&!(e.charCodeAt(r)===42&&e.charCodeAt(r+1)===47)){if(e.charCodeAt(r)===10)t+=`
|
|
208
|
+
`;r++}r=Math.min(r+2,e.length);continue}if(i===44){let s=r+1;while(s<e.length){while(s<e.length&&e.charCodeAt(s)<=32)s++;if(e.charCodeAt(s)===47&&e.charCodeAt(s+1)===47){s+=2;while(s<e.length&&e.charCodeAt(s)!==10)s++;continue}if(e.charCodeAt(s)===47&&e.charCodeAt(s+1)===42){s+=2;while(s+1<e.length&&!(e.charCodeAt(s)===42&&e.charCodeAt(s+1)===47))s++;s=Math.min(s+2,e.length);continue}break}let o=e.charCodeAt(s);if(o===93||o===125){r++;continue}}t+=e[r++]}return t}function ls(e){let t=[e];if(!e.endsWith(".json"))t.push(`${e}.json`);t.push(Dd(e,"tsconfig.json"));for(let r of t)try{if(Wd(r).isFile())return r}catch{}return null}function Bd(e,t){if(El(e)||e.startsWith("."))return ls(Ol(Pd(t),e));let r=Fd(t);for(let n of[e,`${e}/tsconfig.json`])try{let i=ls(r.resolve(n));if(i)return i}catch{}return null}async function kl(e,t){let r=ls(e);if(!r||t.has(r))return;t.add(r);let n=await Nd(r,"utf8"),i=JSON.parse(Id(n)),s=typeof i.extends==="string"?[i.extends]:i.extends??[],o;for(let a of s){let f=Bd(a,r);if(!f)continue;let c=await kl(f,t);if(c!==void 0)o=c}return i.compilerOptions?.isolatedDeclarations??o}async function Sl(e){try{let t=e?.cwd||Md.cwd(),r=e?.tsconfigPath||"tsconfig.json",n=El(r)?r:Ol(t,r);return await kl(n,new Set)??!1}catch{return!1}}function Tl(e,t){let r={isValid:!0,errors:[]};for(let n of vl(e))r.errors.push({line:n.line,column:n.column,message:n.message,code:n.code});return r.isValid=r.errors.length===0,r}function Rl(e,t,r){if(e===t)return"";let n=e.split(`
|
|
209
|
+
`),i=t.split(`
|
|
210
|
+
`),s=new Map,o=new Map;for(let u=0;u<n.length;u++)s.set(n[u],(s.get(n[u])??0)+1);for(let u=0;u<i.length;u++)o.set(i[u],(o.get(i[u])??0)+1);let a=[],f=[];for(let[u,l]of s){let p=l-(o.get(u)??0);for(let h=0;h<p;h++)a.push(u)}for(let[u,l]of o){let p=l-(s.get(u)??0);for(let h=0;h<p;h++)f.push(u)}if(a.length===0&&f.length===0)return"";let c=[`--- ${r}`,`+++ ${r}`];for(let u=0;u<a.length;u++)c.push(`- ${a[u]}`);for(let u=0;u<f.length;u++)c.push(`+ ${f[u]}`);return c.join(`
|
|
211
|
+
`)}function Wl(e,t,r,n){let i=e.split(`
|
|
212
|
+
`),s=[];function o(l){let p="",h=l<0?-l<<1|1:l<<1;do{let w=h&31;if(h>>>=5,h>0)w|=32;p+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[w]}while(h>0);return p}let a=0,f=0,c=0,u=n.split(`
|
|
213
|
+
`).length;for(let l=0;l<i.length;l++){if(i[l].trim()===""){s.push("");continue}a=0;let p=Math.min(l,u-1),h=[],w=0-a,A=0,$=p-f,O=0-c;h.push(o(w)+o(A)+o($)+o(O)),a=0,f=p,c=0,s.push(h.join(","))}return{version:3,file:t,sourceRoot:"",sources:[r],sourcesContent:[n],mappings:s.join(";")}}function Nl(e,t){return`${e}
|
|
214
|
+
${fs()}${t}
|
|
215
|
+
`}var Fl=de(()=>{Rr();xl()});import{mkdir as cs,readdir as Ld,realpath as jd,rm as _d}from"fs/promises";import{availableParallelism as Jd}from"os";import{basename as Il,dirname as Er,extname as Kd,isAbsolute as ds,parse as Hd,relative as Pe,resolve as tt}from"path";async function Pl(e,t,r,n,i){let s=Il(e)||"output.d.ts",o=Pe(Er(e),t),a=`${s}.map`,f=r.lastIndexOf(`
|
|
216
|
+
${fs()}`),c=f===-1?r:r.slice(0,f),u=Wl(c,s,o,n),l=`${e}.map`;return await vr(l,JSON.stringify(u)),K.debug(` Generated source map: ${Pe(i,l)}`),a}async function Mi(e){let t=Date.now(),r={...bl,...e};if(r.logLevel)Cn(r.logLevel);else if(r.verbose)Cn("debug");let n=new Fr;if(r.plugins&&r.plugins.length>0){for(let $ of r.plugins)n.register($),K.debug(`Registered plugin: ${$.name}`);r=await n.runOnStart(r)}if(await Gd(r),r.isolatedDeclarations===void 0)r.isolatedDeclarations=await Sl(r);let i=r.typeMappings?qr(r.typeMappings):void 0,s=null;if(r.incremental){if(s=new wn(r),r.clearCache){if(K.debug("Clearing build cache..."),!r.dryRun)s.clear()}else if(s.load()){let $=s.getStats();K.debug(`Loaded build cache with ${$.entries} entries`)}else K.debug("No existing build cache found, starting fresh");if(!r.dryRun)So(r.cwd)}let o={generationMode:r.isolatedDeclarations?"isolated":"semantic",filesProcessed:0,filesGenerated:0,filesFailed:0,filesValidated:0,validationErrors:0,declarationsFound:0,importsProcessed:0,exportsProcessed:0,durationMs:0,errors:[]},a=0;if(K.debug("Starting DTS generation..."),K.debug(`Using ${o.generationMode} declaration generation path`),K.debug("Config:",r),r.clean&&!r.dryRun)await Zd(r);let f=await qd(r),c=f.slice(),u=null;if(r.autoIncludeReExports!==!1&&c.length>0){u=await Zi(c,{includeImports:!0});let $=tt(r.cwd,r.root),O=r.exclude||[],T=[];for(let S of u.reachable){if(c.includes(S))continue;if(!hs(S))continue;if(S.endsWith(".d.ts"))continue;if(S.includes("node_modules"))continue;if(!Di(S,$)){K.warn(`Skipping auto-included source outside root: ${Pe(r.cwd,S)}`);continue}if(us(S,O,$))continue;T.push(S)}if(T.length>0)c=[...c,...T],K.debug(`Auto-included ${T.length} file(s) reached via relative re-exports`)}if(Ud(c,r),s&&!r.dryRun){let $=s.prune(new Set(c),r.cwd);if($>0)K.debug(`Pruned ${$} deleted files from cache`)}if(K.debug(`Found ${c.length} TypeScript files`),r.progress&&c.length>0){let $=r.parallel?"parallel":"sequential";K.info(`Processing ${c.length} files (${$})...`)}let l=async($,O)=>{let T;try{let S=Or($,r),W=async(q)=>{if(!r.diff)return;try{let V=await ct(S),Y=Rl(V,q,Pe(r.cwd,S));if(Y)K.info(`
|
|
217
|
+
${Y}`);else K.debug(`[no changes] ${S}`)}catch{K.info(`[new file] ${Pe(r.cwd,S)}`)}},b=(q)=>{if(!r.validate)return 0;let V=Tl(q,S);if(V.isValid)return K.debug(`[validation] ${S} - OK`),0;K.warn(`[validation] ${Pe(r.cwd,S)} has ${V.errors.length} error(s):`);for(let Y of V.errors){let we=` Line ${Y.line}:${Y.column}`;if(Y.code)we+=` [${Y.code}]`;if(we+=` - ${Y.message}`,K.warn(we),Y.suggestion)K.warn(` Suggestion: ${Y.suggestion}`)}return V.errors.length},L=(q)=>{K.info(`[dry-run] Would generate: ${S}`),K.debug("--- Content preview ---"),K.debug(q.slice(0,500)+(q.length>500?`
|
|
218
|
+
...`:"")),K.debug("--- End preview ---")};if(s){let q=s.getCachedIfValid($,r.cwd);if(q){await W(q);let V=b(q);if(r.dryRun)L(q);else{if(await cs(Er(S),{recursive:!0}),r.declarationMap)T=O??await ct($),await Pl(S,$,q,T,r.cwd);await vr(S,q,r.lineEnding)}return K.debug(`[cached] ${Pe(r.cwd,S)}`),{success:!0,file:$,declarationCount:0,importCount:0,exportCount:0,cached:!0,validationErrorCount:V}}}T=O??await ct($);let{content:re,declarationCount:F,importCount:J,exportCount:X}=await Qd($,T,r,n,i),se=re;if(r.prettier||r.indentStyle||r.indentSize){let q=await Po(se,{usePrettier:r.prettier,builtIn:{indentSize:r.indentSize||2,useTabs:r.indentStyle==="tabs",normalizeWhitespace:!0,sortImports:!0,trailingNewline:!0}},S);se=q.content;for(let V of q.warnings??[])K.warn(`[format] ${V}`)}if(r.declarationMap){let q=`${Il(S)||"output.d.ts"}.map`;se=Nl(se,q)}await W(se);let H=b(se);if(r.dryRun)L(se);else{if(await cs(Er(S),{recursive:!0}),r.declarationMap&&T)await Pl(S,$,se,T,r.cwd);if(await vr(S,se,r.lineEnding),s&&T)s.update($,T,se,r.cwd);K.debug(`Generated: ${S}`)}return{success:!0,file:$,declarationCount:F,importCount:J,exportCount:X,validationErrorCount:H}}catch(S){let W=Mo(S,$,T);if(r.plugins&&r.plugins.length>0)await n.runOnError(S instanceof Error?S:Error(String(S)),$,T||"");return{success:!1,file:$,declarationCount:0,importCount:0,exportCount:0,dtsError:W,validationErrorCount:0}}},p=r.parallel||r.parallel!==!1&&c.length>=10,h=wo(r.concurrency,Jd?.()??8),w=new Map;if(p&&c.length>1){let $=c.map(async(O)=>{try{let T=await ct(O);return{file:O,source:T}}catch{return{file:O,source:null}}});for(let O of await Promise.all($))if(O.source!==null)w.set(O.file,O.source)}let A=($)=>{if(o.filesProcessed++,$.success){if($.cached)a++;else o.filesGenerated++,o.declarationsFound+=$.declarationCount,o.importsProcessed+=$.importCount,o.exportsProcessed+=$.exportCount;if(r.validate){if(o.filesValidated++,$.validationErrorCount)o.validationErrors+=$.validationErrorCount}}else if(o.filesFailed++,$.dtsError){o.errors.push($.dtsError);let O=Io($.dtsError);if(r.continueOnError)K.warn(O);else throw K.error(O),Error($.dtsError.message)}};if(p)for(let $=0;$<c.length;$+=h){let O=c.slice($,$+h),T=await Promise.all(O.map((S)=>l(S,w.get(S))));for(let S of T)A(S);if(r.progress){let S=Math.round(o.filesProcessed/c.length*100);K.info(`[${o.filesProcessed}/${c.length}] ${S}%`)}}else for(let $ of c){let O=await l($);if(A(O),r.progress){let T=Math.round(o.filesProcessed/c.length*100),S=O.cached?"[cached]":"";K.info(`[${o.filesProcessed}/${c.length}] ${T}% - ${Pe(r.cwd,$)} ${S}`)}}if(s&&!r.dryRun)s.save(),K.debug("Saved build cache");if(!r.bundle){let $=[];if(u)for(let O of u.unresolved)$.push({from:O.from,specifier:O.specifier,reason:"missing"});if(r.autoIncludeReExports===!1&&c.length>0){let O=new Set(c);for(let T of c){let S;try{S=await ct(T)}catch{continue}for(let W of Vi(S)){if(!W.specifier.startsWith("."))continue;let b=Nr(W.specifier,T);if(!b.resolved)$.push({from:T,specifier:W.specifier,reason:"missing"});else if(!/\.d\.(?:ts|mts|cts)$/.test(b.resolved)&&!O.has(b.resolved))$.push({from:T,specifier:W.specifier,reason:"not-emitted"})}}}if($.length>0){let O=[];O.push(`Found ${$.length} re-export(s) pointing at siblings that won't be in the output:`);for(let S of $){let W=Pe(r.cwd,S.from);if(S.reason==="missing")O.push(` ${W} \u2192 '${S.specifier}' (path not found on disk)`);else O.push(` ${W} \u2192 '${S.specifier}' (resolved but not in entrypoints; set autoIncludeReExports: true or add to entrypoints)`)}let T=O.join(`
|
|
219
|
+
`);if(r.failOnUnresolvedReExport)throw Error(T);K.warn(T),K.warn('Generated .d.ts files reference modules that were not emitted \u2014 consumers will see "has no exported member" errors.')}}if(r.bundle&&(o.filesGenerated>0||a>0)&&f.length>0)try{K.debug("Bundling declarations...");let $=new Map,O=async(S)=>{let W=$.get(S);if(W!==void 0)return W;return W=await ct(S),$.set(S,W),W};for(let S of c)await O(S);let T=f.length===1&&!!r.bundleOutput;for(let S of f){let W=await Zi([S],{includeImports:!0}),b=new Set;for(let X of W.reachable){if(X.endsWith(".d.ts"))continue;if(X.includes("node_modules"))continue;b.add(X)}let L=c.filter((X)=>b.has(X));if(!L.includes(S))L.push(S);let re=new Map;for(let X of L){let se=$.get(X)??await O(X);re.set(X,se)}let F=await bo(L,re,r),J=T?tt(r.cwd,r.outdir,r.bundleOutput):Or(S,r);if(r.dryRun)K.info(`[dry-run] Would bundle ${F.files.length} files to: ${Pe(r.cwd,J)}`);else await cs(Er(J),{recursive:!0}),await vr(J,F.content,r.lineEnding),K.info(`Bundled ${F.files.length} files to: ${Pe(r.cwd,J)}`);if(T)break}}catch($){let O=$ instanceof Error?$.message:String($);K.error(`Bundle failed: ${O}`)}if(o.durationMs=Date.now()-t,r.stats)if(r.outputFormat==="json")console.log(JSON.stringify(o,null,2));else{if(K.info(`
|
|
220
|
+
--- Generation Statistics ---`),K.info(`Files processed: ${o.filesProcessed}`),K.info(`Files generated: ${o.filesGenerated}`),a>0)K.info(`Files cached: ${a}`);if(o.filesFailed>0)K.info(`Files failed: ${o.filesFailed}`);if(K.info(`Declarations found: ${o.declarationsFound}`),K.info(`Imports processed: ${o.importsProcessed}`),K.info(`Exports processed: ${o.exportsProcessed}`),o.filesValidated>0){if(K.info(`Files validated: ${o.filesValidated}`),o.validationErrors>0)K.info(`Validation errors: ${o.validationErrors}`)}if(K.info(`Duration: ${o.durationMs}ms`),o.errors.length>0){K.info(`
|
|
221
|
+
Errors:`);for(let $ of o.errors){let O=` - ${$.file}`;if($.location)O+=`:${$.location.line}:${$.location.column}`;if($.code)O+=` [${$.code}]`;if(O+=`: ${$.message}`,K.info(O),$.suggestion)K.info(` Suggestion: ${$.suggestion}`)}}K.info(`-----------------------------
|
|
222
|
+
`)}if(r.plugins&&r.plugins.length>0)await n.runOnEnd(o);return K.debug("DTS generation complete!"),o}async function Dl(e){try{return await jd(e)}catch{return tt(e)}}async function Gd(e){let t=tt(e.cwd,e.outdir);if(e.bundle&&e.bundleOutput){if(ds(e.bundleOutput))throw Error("bundleOutput must be relative to outdir");let i=tt(t,e.bundleOutput);if(!Di(i,t))throw Error("bundleOutput must stay within outdir")}if(!e.clean||e.dryRun)return;if(t===Hd(t).root)throw Error("Refusing to clean declarations from the filesystem root");let[r,n]=await Promise.all([Dl(t),Dl(tt(e.cwd,e.root))]);if(Di(n,r))throw Error("Refusing to clean an outdir that contains the source root")}function Vd(e){let t=xr.get(e);if(!t){if(t=new Ml(e),xr.set(e,t),xr.size>Yd){let r=xr.keys().next().value;if(r!==void 0)xr.delete(r)}}return t}async function Zd(e){let t=tt(e.cwd,e.outdir);async function r(n){let i;try{i=await Ld(n,{withFileTypes:!0})}catch{return}await Promise.all(i.map(async(s)=>{let o=tt(n,s.name);if(s.isDirectory()){await r(o);return}if(s.name.endsWith(".d.ts")||s.name.endsWith(".d.mts")||s.name.endsWith(".d.cts")||s.name.endsWith(".d.ts.map")||s.name.endsWith(".d.mts.map")||s.name.endsWith(".d.cts.map"))await _d(o,{force:!0})}))}await r(t)}function us(e,t,r){if(!t||t.length===0)return!1;let n=Pe(r,e);for(let i of t){let s=Vd(i);if(s.match(n)||s.match(e))return!0}return!1}async function qd(e){let t=[],r=tt(e.cwd,e.root),n=e.exclude||[],i=[...e.entrypoints,...e.include??[]];for(let s of i)if(ds(s)&&hs(s)){if(!s.includes("node_modules")){if(!Di(s,r)&&e.outputStructure!=="flat")K.warn(`Skipping entrypoint outside root: ${Pe(e.cwd,s)}`);else if(!us(s,n,r))t.push(s)}}else{let o=new Ml(s);for await(let a of o.scan({cwd:r,absolute:!0,onlyFiles:!0}))if(hs(a)&&!a.includes("node_modules")){if(!us(a,n,r))t.push(a)}}return[...new Set(t)].sort()}function Di(e,t){let r=Pe(t,e);return r!==".."&&!r.startsWith(`..${process.platform==="win32"?"\\":"/"}`)&&!ds(r)}function Ud(e,t){let r=new Map;for(let n of e){let i=Or(n,t),s=r.get(i);if(s&&s!==n)throw Error(`Output path collision: ${Pe(t.cwd,s)} and ${Pe(t.cwd,n)} both emit ${Pe(t.cwd,i)}`);r.set(i,n)}}function hs(e){return/\.(m?tsx?|cts|jsx?|mjs|cjs|vue|stx)$/.test(e)&&!/\.d\.(?:ts|mts|cts)$/.test(e)}function Or(e,t){let r=tt(t.cwd,t.root),n=Pe(r,e).replace(/\.(m?tsx?|cts|jsx?|mjs|cjs|vue|stx)$/,(i)=>{if(i===".mts"||i===".mjs")return".d.mts";if(i===".cts"||i===".cjs")return".d.cts";return".d.ts"});if(t.outputStructure==="mirror")return tt(t.cwd,t.outdir,n);else{let i=n.split("/").pop();return tt(t.cwd,t.outdir,i)}}function Xd(e,t,r=""){let n=Pe(Er(e),t).replace(/\\/g,"/");if(n=n.replace(/\.d\.mts$/,"").replace(/\.d\.cts$/,"").replace(/\.d\.ts$/,""),r)n+=r;if(!n.startsWith("."))n=`./${n}`;return n}function zd(e,t,r){let n=Or(t,r),i=(s)=>{let o=Nr(s,t);if(!o.isRelative||!o.resolved)return s;if(/\.d\.(?:ts|mts|cts)$/.test(o.resolved))return s;let a=s.match(/[?#].*$/)?.[0]??"",f=a?s.slice(0,-a.length):s,c=Kd(f),u=/^(?:\.js|\.jsx|\.mjs|\.cjs)$/.test(c)?c:"";return Xd(n,Or(o.resolved,r),u)+a};return e.replace(/\b(from\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,f)=>{return`${o}${a}${i(f)}${a}`}).replace(/\b(import\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,f)=>{return`${o}${a}${i(f)}${a}`}).replace(/\b(import\s*\(\s*)(['"])(\.{1,2}\/[^'"]+)\2/g,(s,o,a,f)=>{return`${o}${a}${i(f)}${a}`})}async function Qd(e,t,r,n,i){let s=t;if(n)s=await n.runOnBeforeFile(e,t);let o=Gr(s,e,r.keepComments,r.isolatedDeclarations??!1);if(n)o=await n.runOnDeclarations(e,s,o);let a=0,f=0;for(let u=0;u<o.length;u++){let l=o[u];if(l.kind==="import")a++;if(l.kind==="export"||l.isExported)f++}let c=Vo(o,{filePath:e,sourceCode:s,declarations:o},r.keepComments,r.importOrder);if(c=zd(c,e,r),i)c=No(c,i,{filePath:e});if(r.normalizeOutput===!0||r.declarationOrder)c=Ds(c,{lineEnding:"lf",declarationOrder:r.declarationOrder,indent:{style:r.indentStyle??"spaces",size:r.indentSize??2}});if(n)c=await n.runOnAfterFile(e,s,c);return{content:c,declarationCount:o.length,importCount:a,exportCount:f}}var Ml,Yd=50,xr;var Bl=de(()=>{Ns();Ms();Is();vo();To();Fo();Do();Bo();Zo();pn();Co();Fl();Rr();Al();zo();({Glob:Ml}=globalThis.Bun);xr=new Map});var Ll=de(()=>{Bl()});var Gl={};lf(Gl,{dtsWatch:()=>cm,dtsCheck:()=>um,dts:()=>gs,default:()=>dm,clearCache:()=>hm,PluginErrorCodes:()=>am,DtsxPluginError:()=>sr});import{createHash as tm}from"crypto";import{existsSync as rm,readFileSync as im,writeFileSync as nm}from"fs";import{dirname as sm,join as om,relative as jl,resolve as nr,sep as Ii}from"path";import Jl from"process";class Kl{listeners=new Map;on(e,t){let r=this.listeners.get(e)||[];r.push(t),this.listeners.set(e,r)}async emit(e,t){let r={type:e,timestamp:Date.now(),data:t},n=this.listeners.get(e)||[];for(let i of n)await i(r)}}class ms{manifest;cacheDir;manifestPath;constructor(e,t){this.cacheDir=e,this.manifestPath=om(e,"manifest.json"),this.manifest=this.loadManifest(t)}loadManifest(e){try{if(rm(this.manifestPath)){let t=JSON.parse(im(this.manifestPath,"utf-8"));if(t.configHash===e&&t.version==="1.0")return t}}catch{}return{version:"1.0",configHash:e,entries:{}}}save(){try{let{mkdirSync:e}=em("fs");e(this.cacheDir,{recursive:!0}),nm(this.manifestPath,JSON.stringify(this.manifest,null,2))}catch{}}getEntry(e){return this.manifest.entries[e]}setEntry(e,t){this.manifest.entries[e]=t}isValid(e,t){return this.getEntry(e)?.hash===t}clear(){this.manifest.entries={},this.save()}}function lm(e){let t={root:e.root,outdir:e.outdir,entrypoints:e.entrypoints,clean:e.clean,tsconfigPath:e.tsconfigPath};return tm("md5").update(JSON.stringify(t)).digest("hex")}function gs(e={}){let{onSuccess:t,onError:r,failOnError:n=!0,incremental:i=!1,cacheDir:s=".dtsx-cache",on:o,timeout:a=60000,continueOnError:f=!1,verbose:c=!1,...u}=e,l=new Kl;if(o){for(let[p,h]of Object.entries(o))if(h)l.on(p,h)}return{name:"bun-plugin-dtsx",async setup(p){let h=Date.now(),w=null,A=0;try{let $=Yl(u,p),O=lm($);if($.clean){let b=nr($.cwd??Jl.cwd(),$.outdir??"./dist");if(_l.has(b))$.clean=!1;else _l.add(b)}if(i)w=new ms(nr(s),O);if(await l.emit("start",{type:"start",files:$.entrypoints||[],config:$}),c){if(console.log("[bun-plugin-dtsx] Starting declaration generation..."),i)console.log("[bun-plugin-dtsx] Incremental mode enabled")}let S=await(async()=>{return new Promise((b,L)=>{let re=setTimeout(()=>{L(new sr(`Generation timed out after ${a}ms`,"TIMEOUT_ERROR",{timeout:a}))},a);Mi($).then((F)=>{clearTimeout(re),b(F)}).catch((F)=>{clearTimeout(re),L(F)})})})(),W=Date.now()-h;if(w)w.save();if(await l.emit("complete",{type:"complete",stats:S,duration:W,fromCache:A}),c){if(console.log(`[bun-plugin-dtsx] Generation complete in ${W}ms`),A>0)console.log(`[bun-plugin-dtsx] ${A} files served from cache`)}if(t)await t(S)}catch($){let O=Hl($);if(await l.emit("error",{type:"error",error:O}),r)await r(O);else{if(console.error("[bun-plugin-dtsx] Error generating declarations:"),console.error(` Code: ${O.code}`),console.error(` Message: ${O.message}`),O.context)console.error(` Context: ${JSON.stringify(O.context)}`);if(c&&O.stack)console.error(` Stack: ${O.stack}`)}if(n&&!f)throw O}}}}function Hl(e){if(e instanceof sr)return e;if(e instanceof Error){let t="GENERATION_ERROR";if(e.message.includes("config")||e.message.includes("Config"))t="CONFIG_ERROR";else if(e.message.includes("file")||e.message.includes("File")||e.message.includes("ENOENT"))t="FILE_ERROR";return new sr(e.message,t,{originalError:e.name},e)}return new sr(String(e),"GENERATION_ERROR")}function fm(e){let t=e.map((n)=>sm(n).split(Ii)),r=t[0];for(let n of t.slice(1)){let i=0;while(i<r.length&&i<n.length&&r[i]===n[i])i++;r=r.slice(0,i)}return r.join(Ii)||Ii}function Yl(e,t){let r=e.cwd||Jl.cwd(),n=t?.config?.entrypoints,i=e.outdir||e.build?.config.outdir||t?.config.outdir||"./dist",s=e.root||e.build?.config.root||t?.config.root;if(!s&&n?.length){let a=fm(n.map((f)=>nr(r,f)));s=jl(r,a)||"."}s=s||"./src";let o=e.entrypoints;if(!o)if(n?.length){let a=nr(r,s),f=[];for(let c of n){let u=nr(r,c);if(u===a||u.startsWith(a+Ii))f.push(jl(a,u));else console.warn(`[bun-plugin-dtsx] Skipping entrypoint outside root "${s}": ${c}`)}o=f.length?f:["index.ts"]}else o=["index.ts"];return{...e,cwd:r,root:s,entrypoints:o,outdir:i,clean:e.clean??!0,tsconfigPath:e.tsconfigPath}}function cm(e={}){return gs({...e,incremental:!0,verbose:e.verbose??!0})}function um(e){return{name:"bun-plugin-dtsx-check",async setup(t){let r=Yl({...e,outdir:""},t);try{await Mi({...r,clean:!1})}catch(n){let i=Hl(n);if(e.onError)await e.onError(i);if(e.failOnError!==!1)throw i}}}}function hm(e=".dtsx-cache"){new ms(nr(e),"").clear()}var em,am,sr,_l,dm;var Vl=de(()=>{Ll();em=import.meta.require,am={CONFIG_ERROR:"CONFIG_ERROR",GENERATION_ERROR:"GENERATION_ERROR",FILE_ERROR:"FILE_ERROR",CACHE_ERROR:"CACHE_ERROR",TIMEOUT_ERROR:"TIMEOUT_ERROR"};sr=class sr extends Error{code;context;cause;constructor(e,t,r,n){super(e);if(this.name="DtsxPluginError",this.code=t,this.context=r,this.cause=n,Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,code:this.code,message:this.message,context:this.context,stack:this.stack}}};_l=new Set;dm=gs});import{mkdir as mm,stat as gm}from"fs/promises";import{bold as ps,dim as ys,green as pm,italic as Zl,log as ym}from"@stacksjs/cli";import{path as st}from"@stacksjs/path";import{glob as ql}from"@stacksjs/storage";async function $m(e){let t=await ql([st.resolve(e,"dist","**/*.d.ts")],{absolute:!0}),r=new Bun.Transpiler({loader:"ts",target:"bun"});for(let n of t){let i=await Bun.file(n).text();try{r.transformSync(i)}catch(s){throw Error(`Invalid declaration generated at ${n}: ${s instanceof Error?s.message:String(s)}`)}}}async function o0(e){let r=Date.now()-e.startTime,n=e.pkgName??`@stacksjs/${st.basename(e.dir)}`;if(e.result.errors&&e.result.errors.length>0)throw console.error("Build errors:",e.result.errors),Error(`Build failed with errors: ${JSON.stringify(e.result.errors)}`);else if(e.result.success!==void 0&&!e.result.success){let s=e.result.logs?.[0]||"Unknown build error";throw console.log(s),Error(`Build failed: ${s}`)}await $m(e.dir);let i=await ql([st.resolve(e.dir,"dist","**/*")],{absolute:!0});for(let s of i){let o=await gm(s),a;if(o.size<1048576)a=`${(o.size/1024).toFixed(2)}kb`;else a=`${(o.size/1024/1024).toFixed(2)}mb`;let f=st.relative(e.dir,s).replace("dist/","");console.log(`${ps(ys(`[${a}]`))} ${ys("dist/")}${f}`)}console.log(`${ps(ys(`[${r}ms]`))} Built ${Zl(ps(pm(n)))}`)}async function a0(e){let t=e.pkgName??`@stacksjs/${st.basename(e.dir)}`;if(e.styled===!1)console.log(`Building ${t}...`);else ym.info(`Building ${Zl(t)}...`);return{startTime:Date.now()}}async function l0(e){let{dts:t}=await Promise.resolve().then(() => (Vl(),Gl)),r=st.resolve(e.dir,"src"),n=st.resolve(e.dir,"dist"),i=(await Array.fromAsync(new Bun.Glob("**/*.ts").scan({cwd:r}))).filter((o)=>!o.endsWith(".d.ts"));await Bun.build({entrypoints:i.map((o)=>st.resolve(r,o)),outdir:n,root:r,target:"bun",format:"esm",splitting:!1,external:e.external??wm(),plugins:[t({root:r,outdir:n})]});let s=new Bun.Transpiler({loader:"ts",target:"bun"});for(let o of i){let a=s.transformSync(await Bun.file(st.resolve(r,o)).text());a=a.replace(/(['"])(\.\.?\/[^'"]+?)\.tsx?\1/g,"$1$2.js$1");let f=st.resolve(n,o.replace(/\.ts$/,".js"));await mm(st.dirname(f),{recursive:!0}),await Bun.write(f,a)}}function wm(e=[]){let t=[];try{let r=Ze("fs"),n=JSON.parse(r.readFileSync(`${process.cwd()}/package.json`,"utf8"));t=[...Object.keys(n.dependencies??{}),...Object.keys(n.peerDependencies??{}),...Object.keys(n.optionalDependencies??{})]}catch{}return["@stacksjs/*",...t,"bun-queue","ioredis","localtunnels","localtunnels/*","@craft-native/ts","ts-md","meilisearch","algoliasearch","@opensearch-project/opensearch","*.yaml","*.yml",...e]}export{$m as validateDeclarations,l0 as transpilePackage,o0 as outro,a0 as intro,wm as frameworkExternal};
|