veloce-ts 0.4.13 → 0.4.14

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.
@@ -72,7 +72,7 @@ ${x}`;return F.pop(),`{${s}}`}case"number":return isFinite(_)?String(_):J?J(_):"
72
72
  };
73
73
  </script>
74
74
  </body>
75
- </html>`}}class Q1{manager;id;_ws;constructor($,J,Y){this.manager=J;this._ws=$,this.id=Y||crypto.randomUUID()}send($){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)return;let J=typeof $==="string"?$:JSON.stringify($);this._ws.send(J)}broadcast($,J){this.manager.broadcast($,J)}join($){this.manager.joinRoom(this.id,$)}leave($){this.manager.leaveRoom(this.id,$)}close($,J){if(this._ws&&this._ws.readyState===WebSocket.OPEN)this._ws.close($,J)}get native(){return this._ws}get isOpen(){return this._ws!==null&&this._ws.readyState===WebSocket.OPEN}_markClosed(){this._ws=null}}class k1{connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Y=new Q1($,this);if(this.connections.set(Y.id,Y),J.onConnect)this.executeHandler(J,J.onConnect,Y);return $.addEventListener("message",async(X)=>{await this.handleMessage(X,Y,J)}),$.addEventListener("close",()=>{this.handleDisconnect(Y,J)}),$.addEventListener("error",(X)=>{console.error(`WebSocket error for connection ${Y.id}:`,X)}),Y}handleConnectionBun($,J){let Y=new Q1($,this);if(this.connections.set(Y.id,Y),J.onConnect)this.executeHandler(J,J.onConnect,Y);return Y}async handleMessageBun($,J,Y){let Q={data:typeof $==="string"?$:$.toString()};await this.handleMessage(Q,J,Y)}handleDisconnectBun($,J){this.handleDisconnect($,J)}async handleMessage($,J,Y){if(!Y.onMessage)return;let X;try{if(X=typeof $.data==="string"?JSON.parse($.data):$.data,Y.messageSchema)X=await Y.messageSchema.parseAsync(X);await this.executeHandler(Y,Y.onMessage,J,X)}catch(Q){J.send({error:"Invalid message format",details:Q instanceof Error?Q.message:"Unknown error"})}}handleDisconnect($,J){if(Array.from(this.connectionsByRoom.entries()).forEach(([Y,X])=>{if(X.delete($),X.size===0)this.connectionsByRoom.delete(Y)}),Array.from(this.rooms.entries()).forEach(([Y,X])=>{if(X.delete($.id),X.size===0)this.rooms.delete(Y)}),this.connections.delete($.id),$._markClosed(),J.onDisconnect)this.executeHandler(J,J.onDisconnect,$)}async executeHandler($,J,Y,X){try{let Q=$.instance??new $.target,H=Q[J];if(typeof H==="function")if(X!==void 0)await H.call(Q,Y,X);else await H.call(Q,Y)}catch(Q){console.error(`Error executing WebSocket handler ${J}:`,Q)}}broadcast($,J){let Y=J?this.getConnectionsInRoom(J):Array.from(this.connections.values()),X=typeof $==="string"?$:JSON.stringify($);for(let Q of Y)if(Q.isOpen)Q.send(X)}joinRoom($,J){let Y=this.connections.get($);if(!Y)return;if(!this.rooms.has(J))this.rooms.set(J,new Set);if(this.rooms.get(J).add($),!this.connectionsByRoom.has(J))this.connectionsByRoom.set(J,new Set);this.connectionsByRoom.get(J).add(Y)}leaveRoom($,J){let Y=this.connections.get($);if(!Y)return;let X=this.rooms.get(J);if(X){if(X.delete($),X.size===0)this.rooms.delete(J)}let Q=this.connectionsByRoom.get(J);if(Q){if(Q.delete(Y),Q.size===0)this.connectionsByRoom.delete(J)}}getConnectionsInRoom($){let J=this.connectionsByRoom.get($);return J?Array.from(J):[]}getConnection($){return this.connections.get($)}getAllConnections(){return Array.from(this.connections.values())}getConnectionCount(){return this.connections.size}getRooms(){return Array.from(this.rooms.keys())}getRoomSize($){return this.rooms.get($)?.size||0}}class h1{name="websocket";version="1.0.0";manager;constructor(){this.manager=new k1}async install($){let Y=$.getMetadata().getWebSockets(),X=$.getContainer();for(let Q of Y)Q.instance=await X.resolve(Q.target),this.registerWebSocket($,Q)}registerWebSocket($,J){$.getHono().get(J.path,async(X)=>{if(X.req.header("upgrade")?.toLowerCase()!=="websocket")return X.text("Expected WebSocket upgrade",426);return this.handleUpgrade(X,J)})}handleUpgrade($,J){if(typeof Bun<"u")return this.handleBunUpgrade($,J);else if(typeof globalThis.Deno<"u")return this.handleDenoUpgrade($,J);else return this.handleNodeUpgrade($,J)}handleBunUpgrade($,J){let Y=$.env;if(!Y?.upgrade)return $.text("WebSocket upgrade not supported in this environment",501);if(!Y.upgrade($.req.raw,{data:{manager:this.manager,metadata:J,requestUrl:$.req.url}}))return $.text("WebSocket upgrade failed",500);return}handleDenoUpgrade($,J){let Y=globalThis.Deno,{socket:X,response:Q}=Y.upgradeWebSocket($.req.raw);return X.onopen=()=>{this.manager.handleConnection(X,J)},Q}handleNodeUpgrade($,J){return $.text("WebSocket support requires Bun or Deno runtime",501)}getManager(){return this.manager}broadcast($,J){this.manager.broadcast($,J)}getConnectionCount(){return this.manager.getConnectionCount()}getRooms(){return this.manager.getRooms()}}var FG=O9(t2(),1),g1=Symbol("graphql:resolver"),E0=Symbol("graphql:field"),h0=Symbol("graphql:args");function MG($){return(J)=>{let Y={target:J,name:$||J.name};Reflect.defineMetadata(g1,Y,J)}}function EG($,J){return y1("query",$,J)}function jG($,J){return y1("mutation",$,J)}function LG($,J){return y1("subscription",$,J)}function y1($,J,Y){return(X,Q)=>{let H={target:X.constructor,propertyKey:Q,type:$,name:J||Q,description:Y?.description,deprecated:Y?.deprecated,deprecationReason:Y?.deprecationReason},q=Reflect.getMetadata(E0,X.constructor)||[];q.push(H),Reflect.defineMetadata(E0,q,X.constructor),Reflect.defineMetadata(E0,H,X,Q)}}function OG($,J,Y){return(X,Q,H)=>{if(!Q)return;let q=Reflect.getMetadata(h0,X,Q)||[],G={index:H,name:$,schema:J,description:Y?.description,defaultValue:Y?.defaultValue,nullable:Y?.nullable};q[H]=G,Reflect.defineMetadata(h0,q,X,Q)}}function KG(){return($,J,Y)=>{if(!J)return;let X=Reflect.getMetadata(h0,$,J)||[],Q={index:Y,name:"__context__",nullable:!1};X[Y]=Q,Reflect.defineMetadata(h0,X,$,J)}}function CG($){return Reflect.getMetadata(g1,$)}function SG($){return Reflect.getMetadata(E0,$)||[]}function PG($,J){return Reflect.getMetadata(E0,$,J)}function u1($,J){return Reflect.getMetadata(h0,$,J)||[]}function bG($){return Reflect.hasMetadata(g1,$)}function TG($,J){return Reflect.hasMetadata(E0,$,J)}function y$($){let J=$._def.typeName;if(J==="ZodString")return"String";if(J==="ZodNumber"){if($._def.checks?.some((X)=>X.kind==="int"))return"Int";return"Float"}if(J==="ZodBoolean")return"Boolean";if(J==="ZodArray")return`[${y$($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return y$($._def.innerType);if(J==="ZodNullable")return y$($._def.innerType);if(J==="ZodDefault")return y$($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Y=$._def.options;if(Y&&Y.length>0)return y$(Y[0])}if(J==="ZodLiteral"){let Y=$._def.value;if(typeof Y==="string")return"String";if(typeof Y==="number")return"Float";if(typeof Y==="boolean")return"Boolean"}if(J==="ZodDate")return"String";return"String"}function g0($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return g0($._def.innerType);return!1}function e2($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Y=$._def.innerType;if(Y)return e2(Y)}return}function ZG($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Q=[];for(let[H,q]of Object.entries(X)){let G=q,W=y$(G),B=g0(G)?W:`${W}!`;Q.push(` ${H}: ${B}`)}return`type ${$} {
75
+ </html>`}}class Q1{manager;id;_ws;constructor($,J,Y){this.manager=J;this._ws=$,this.id=Y||crypto.randomUUID()}send($){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)return;let J=typeof $==="string"?$:JSON.stringify($);this._ws.send(J)}broadcast($,J){this.manager.broadcast($,J)}join($){this.manager.joinRoom(this.id,$)}leave($){this.manager.leaveRoom(this.id,$)}close($,J){if(this._ws&&this._ws.readyState===WebSocket.OPEN)this._ws.close($,J)}get native(){return this._ws}get requestUrl(){if(!this._ws)return"";let $=this._ws;return $?.data?.requestUrl??$?.url??""}get isOpen(){return this._ws!==null&&this._ws.readyState===WebSocket.OPEN}_markClosed(){this._ws=null}}class k1{connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Y=new Q1($,this);if(this.connections.set(Y.id,Y),J.onConnect)this.executeHandler(J,J.onConnect,Y);return $.addEventListener("message",async(X)=>{await this.handleMessage(X,Y,J)}),$.addEventListener("close",()=>{this.handleDisconnect(Y,J)}),$.addEventListener("error",(X)=>{console.error(`WebSocket error for connection ${Y.id}:`,X)}),Y}handleConnectionBun($,J){let Y=new Q1($,this);if(this.connections.set(Y.id,Y),J.onConnect)this.executeHandler(J,J.onConnect,Y);return Y}async handleMessageBun($,J,Y){let Q={data:typeof $==="string"?$:$.toString()};await this.handleMessage(Q,J,Y)}handleDisconnectBun($,J){this.handleDisconnect($,J)}async handleMessage($,J,Y){if(!Y.onMessage)return;let X;try{if(X=typeof $.data==="string"?JSON.parse($.data):$.data,Y.messageSchema)X=await Y.messageSchema.parseAsync(X);await this.executeHandler(Y,Y.onMessage,J,X)}catch(Q){J.send({error:"Invalid message format",details:Q instanceof Error?Q.message:"Unknown error"})}}handleDisconnect($,J){if(Array.from(this.connectionsByRoom.entries()).forEach(([Y,X])=>{if(X.delete($),X.size===0)this.connectionsByRoom.delete(Y)}),Array.from(this.rooms.entries()).forEach(([Y,X])=>{if(X.delete($.id),X.size===0)this.rooms.delete(Y)}),this.connections.delete($.id),$._markClosed(),J.onDisconnect)this.executeHandler(J,J.onDisconnect,$)}async executeHandler($,J,Y,X){try{let Q=$.instance??new $.target,H=Q[J];if(typeof H==="function")if(X!==void 0)await H.call(Q,Y,X);else await H.call(Q,Y)}catch(Q){console.error(`Error executing WebSocket handler ${J}:`,Q)}}broadcast($,J){let Y=J?this.getConnectionsInRoom(J):Array.from(this.connections.values()),X=typeof $==="string"?$:JSON.stringify($);for(let Q of Y)if(Q.isOpen)Q.send(X)}joinRoom($,J){let Y=this.connections.get($);if(!Y)return;if(!this.rooms.has(J))this.rooms.set(J,new Set);if(this.rooms.get(J).add($),!this.connectionsByRoom.has(J))this.connectionsByRoom.set(J,new Set);this.connectionsByRoom.get(J).add(Y)}leaveRoom($,J){let Y=this.connections.get($);if(!Y)return;let X=this.rooms.get(J);if(X){if(X.delete($),X.size===0)this.rooms.delete(J)}let Q=this.connectionsByRoom.get(J);if(Q){if(Q.delete(Y),Q.size===0)this.connectionsByRoom.delete(J)}}getConnectionsInRoom($){let J=this.connectionsByRoom.get($);return J?Array.from(J):[]}getConnection($){return this.connections.get($)}getAllConnections(){return Array.from(this.connections.values())}getConnectionCount(){return this.connections.size}getRooms(){return Array.from(this.rooms.keys())}getRoomSize($){return this.rooms.get($)?.size||0}}class h1{name="websocket";version="1.0.0";manager;constructor(){this.manager=new k1}async install($){let Y=$.getMetadata().getWebSockets(),X=$.getContainer();for(let Q of Y)Q.instance=await X.resolve(Q.target),this.registerWebSocket($,Q)}registerWebSocket($,J){$.getHono().get(J.path,async(X)=>{if(X.req.header("upgrade")?.toLowerCase()!=="websocket")return X.text("Expected WebSocket upgrade",426);return this.handleUpgrade(X,J)})}handleUpgrade($,J){if(typeof Bun<"u")return this.handleBunUpgrade($,J);else if(typeof globalThis.Deno<"u")return this.handleDenoUpgrade($,J);else return this.handleNodeUpgrade($,J)}handleBunUpgrade($,J){let Y=$.env;if(!Y?.upgrade)return $.text("WebSocket upgrade not supported in this environment",501);if(!Y.upgrade($.req.raw,{data:{manager:this.manager,metadata:J,requestUrl:$.req.url}}))return $.text("WebSocket upgrade failed",500);return}handleDenoUpgrade($,J){let Y=globalThis.Deno,{socket:X,response:Q}=Y.upgradeWebSocket($.req.raw);return X.onopen=()=>{this.manager.handleConnection(X,J)},Q}handleNodeUpgrade($,J){return $.text("WebSocket support requires Bun or Deno runtime",501)}getManager(){return this.manager}broadcast($,J){this.manager.broadcast($,J)}getConnectionCount(){return this.manager.getConnectionCount()}getRooms(){return this.manager.getRooms()}}var FG=O9(t2(),1),g1=Symbol("graphql:resolver"),E0=Symbol("graphql:field"),h0=Symbol("graphql:args");function MG($){return(J)=>{let Y={target:J,name:$||J.name};Reflect.defineMetadata(g1,Y,J)}}function EG($,J){return y1("query",$,J)}function jG($,J){return y1("mutation",$,J)}function LG($,J){return y1("subscription",$,J)}function y1($,J,Y){return(X,Q)=>{let H={target:X.constructor,propertyKey:Q,type:$,name:J||Q,description:Y?.description,deprecated:Y?.deprecated,deprecationReason:Y?.deprecationReason},q=Reflect.getMetadata(E0,X.constructor)||[];q.push(H),Reflect.defineMetadata(E0,q,X.constructor),Reflect.defineMetadata(E0,H,X,Q)}}function OG($,J,Y){return(X,Q,H)=>{if(!Q)return;let q=Reflect.getMetadata(h0,X,Q)||[],G={index:H,name:$,schema:J,description:Y?.description,defaultValue:Y?.defaultValue,nullable:Y?.nullable};q[H]=G,Reflect.defineMetadata(h0,q,X,Q)}}function KG(){return($,J,Y)=>{if(!J)return;let X=Reflect.getMetadata(h0,$,J)||[],Q={index:Y,name:"__context__",nullable:!1};X[Y]=Q,Reflect.defineMetadata(h0,X,$,J)}}function CG($){return Reflect.getMetadata(g1,$)}function SG($){return Reflect.getMetadata(E0,$)||[]}function PG($,J){return Reflect.getMetadata(E0,$,J)}function u1($,J){return Reflect.getMetadata(h0,$,J)||[]}function bG($){return Reflect.hasMetadata(g1,$)}function TG($,J){return Reflect.hasMetadata(E0,$,J)}function y$($){let J=$._def.typeName;if(J==="ZodString")return"String";if(J==="ZodNumber"){if($._def.checks?.some((X)=>X.kind==="int"))return"Int";return"Float"}if(J==="ZodBoolean")return"Boolean";if(J==="ZodArray")return`[${y$($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return y$($._def.innerType);if(J==="ZodNullable")return y$($._def.innerType);if(J==="ZodDefault")return y$($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Y=$._def.options;if(Y&&Y.length>0)return y$(Y[0])}if(J==="ZodLiteral"){let Y=$._def.value;if(typeof Y==="string")return"String";if(typeof Y==="number")return"Float";if(typeof Y==="boolean")return"Boolean"}if(J==="ZodDate")return"String";return"String"}function g0($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return g0($._def.innerType);return!1}function e2($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Y=$._def.innerType;if(Y)return e2(Y)}return}function ZG($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Q=[];for(let[H,q]of Object.entries(X)){let G=q,W=y$(G),B=g0(G)?W:`${W}!`;Q.push(` ${H}: ${B}`)}return`type ${$} {
76
76
  ${Q.join(`
77
77
  `)}
78
78
  }`}function xG($,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let X=J._def.shape(),Q=[];for(let[H,q]of Object.entries(X)){let G=q,W=y$(G),A=g0(G),B=e2(G),D=A?W:`${W}!`;if(B!==void 0){let j=JSON.stringify(B);D+=` = ${j}`}Q.push(` ${H}: ${D}`)}return`input ${$} {
@@ -141,4 +141,4 @@ ${Q.join(`
141
141
  </html>
142
142
  `.trim()}getSchema(){return this.schema}}var c0;function uX(){if(c0!==void 0)return c0;try{c0=J9()}catch{c0=null}return c0}class Y9{logger;constructor($){let J=uX(),Y=!0;if(!J){this.logger=new f$($);return}this.logger=J({level:$?.level||"debug"})}trace($,J){if(this.logger instanceof f$){this.logger.trace($,J);return}this.logger.trace(J||{},$)}debug($,J){if(this.logger instanceof f$){this.logger.debug($,J);return}this.logger.debug(J||{},$)}info($,J){if(this.logger instanceof f$){this.logger.info($,J);return}this.logger.info(J||{},$)}warn($,J){if(this.logger instanceof f$){this.logger.warn($,J);return}this.logger.warn(J||{},$)}error($,J,Y){if(this.logger instanceof f$){this.logger.error($,J,Y);return}this.logger.error({err:J,...Y},$)}fatal($,J,Y){if(this.logger instanceof f$){this.logger.fatal($,J,Y);return}this.logger.fatal({err:J,...Y},$)}child($){if(this.logger instanceof f$)return this.logger.child($);return new h3(this.logger.child($))}}class h3{logger;constructor($){this.logger=$}trace($,J){this.logger.trace(J||{},$)}debug($,J){this.logger.debug(J||{},$)}info($,J){this.logger.info(J||{},$)}warn($,J){this.logger.warn(J||{},$)}error($,J,Y){this.logger.error({err:J,...Y},$)}fatal($,J,Y){this.logger.fatal({err:J,...Y},$)}child($){return new h3(this.logger.child($))}}class f${level;ctx;constructor($,J={}){this.level=$?.level||"debug",this.ctx=J}fmt($,J){let Y={...this.ctx,...J},X=Object.keys(Y).length?" "+JSON.stringify(Y):"";return`${$}${X}`}trace($,J){if(["trace"].includes(this.level))console.debug("[TRACE]",this.fmt($,J))}debug($,J){if(["trace","debug"].includes(this.level))console.debug("[DEBUG]",this.fmt($,J))}info($,J){if(["trace","debug","info"].includes(this.level))console.info("[INFO]",this.fmt($,J))}warn($,J){if(["trace","debug","info","warn"].includes(this.level))console.warn("[WARN]",this.fmt($,J))}error($,J,Y){console.error("[ERROR]",this.fmt($,Y),J??"")}fatal($,J,Y){console.error("[FATAL]",this.fmt($,Y),J??"")}child($){return new f$({level:this.level},{...this.ctx,...$})}}function X9($){return new Y9($)}var d0=null;function TW($){return d0=X9($),d0}function g3(){if(!d0)d0=X9({pretty:!0,level:"debug"});return d0}function y3($){return g3().child($)}function xW(){return async($,J)=>{let Y=y3({context:"request",method:$.req.method,path:$.req.path,ip:$.req.header("x-forwarded-for")||$.req.header("x-real-ip")||"unknown"}),X=Date.now();Y.info("Incoming request");try{await J();let Q=Date.now()-X;Y.info("Request completed",{status:$.res.status,duration:`${Q}ms`})}catch(Q){let H=Date.now()-X;throw Y.error("Request failed",Q,{status:Q.status||500,duration:`${H}ms`}),Q}}}function vW(){return async($,J)=>{try{await J()}catch(Y){throw y3({context:"error"}).error("Unhandled error",Y,{method:$.req.method,path:$.req.path,query:$.req.query(),headers:Object.fromEntries(new Map($.req.raw.headers))}),Y}}}function u3($,J){try{Object.defineProperty($,"name",{value:J,configurable:!0,enumerable:!1,writable:!1})}catch{$.__veloceCheckerName=J}}function n0($){let J=$;return $.name||J.__veloceCheckerName||"unknown"}class l3{name="health";version="1.0.0";options;startTime;logger=g3().child({plugin:"health"});constructor($){this.options={path:$?.path||"/health",readyPath:$?.readyPath||"/ready",livePath:$?.livePath||"/live",checks:$?.checks||[]},this.startTime=Date.now()}async install($){$.get(this.options.path,{handler:async(J)=>{return this.handleHealth(J)},docs:{summary:"Health Check",description:"Comprehensive health check endpoint",tags:["Health"]}}),$.get(this.options.readyPath,{handler:async(J)=>{return this.handleReady(J)},docs:{summary:"Readiness Check",description:"Check if the application is ready to serve traffic",tags:["Health"]}}),$.get(this.options.livePath,{handler:async(J)=>{return this.handleLive(J)},docs:{summary:"Liveness Check",description:"Check if the application is alive",tags:["Health"]}}),this.logger.info("Health check endpoints registered",{health:this.options.path,ready:this.options.readyPath,live:this.options.livePath})}async handleHealth($){let J=Date.now()-this.startTime,Y={},X=!0;for(let H of this.options.checks)try{let q=await Promise.resolve(H());if(Y[n0(H)]=q,q.status==="unhealthy")X=!1}catch(q){let G=q instanceof Error?q.message:"Unknown error";Y[n0(H)]={status:"unhealthy",message:G},X=!1}let Q={status:X?"healthy":"unhealthy",timestamp:new Date().toISOString(),uptime:J,checks:Object.keys(Y).length>0?Y:void 0};return $.json(Q,X?200:503)}async handleReady($){let J=Date.now()-this.startTime,Y=this.options.checks.filter((q)=>{let G=n0(q);return G.includes("database")||G.includes("cache")||G.includes("ready")}),X=!0,Q={};for(let q of Y)try{let G=await Promise.resolve(q());if(Q[n0(q)]=G,G.status==="unhealthy")X=!1}catch(G){X=!1;let W=G instanceof Error?G.message:"Unknown error";Q[n0(q)]={status:"unhealthy",message:W}}let H={status:X?"ready":"not_ready",timestamp:new Date().toISOString(),uptime:J,checks:Object.keys(Q).length>0?Q:void 0};return $.json(H,X?200:503)}handleLive($){let J=Date.now()-this.startTime;return $.json({status:"alive",timestamp:new Date().toISOString(),uptime:J},200)}}var Q9={alwaysHealthy(){return{status:"healthy",message:"OK"}},database($){let J=async()=>{try{let Y=await Promise.resolve($());return{status:Y?"healthy":"unhealthy",message:Y?"Database connection OK":"Database connection failed"}}catch(Y){return{status:"unhealthy",message:Y instanceof Error?Y.message:"Database check failed"}}};return u3(J,"database"),J},memory($=512){let J=()=>{if(typeof process>"u"||!process.memoryUsage)return{status:"healthy",message:"Memory check not available"};let X=process.memoryUsage().heapUsed/1024/1024;return{status:X<$?"healthy":"unhealthy",message:`Heap usage: ${X.toFixed(2)}MB / ${$}MB`,heapUsedMB:X.toFixed(2),maxUsageMB:$}};return u3(J,"memory"),J},disk($=process.cwd(),J=90){let Y=async()=>{try{let{statfs:X}=await import("fs/promises");if(typeof X!=="function")return{status:"healthy",message:"statfs not available on this platform"};let Q=await X($),H=Q.blocks*Q.bsize,q=Q.bfree*Q.bsize,G=H-q,W=H>0?G/H*100:0;return{status:W<J?"healthy":"unhealthy",message:`Disk usage: ${W.toFixed(1)}% (threshold: ${J}%)`,usagePercent:parseFloat(W.toFixed(1)),freeGB:parseFloat((q/1e9).toFixed(2)),totalGB:parseFloat((H/1e9).toFixed(2)),path:$}}catch(X){return{status:"healthy",message:`Disk check unavailable: ${X instanceof Error?X.message:String(X)}`}}};return u3(Y,"disk"),Y}};
143
143
 
144
- //# debugId=B2D544952D997CE264756E2164756E21
144
+ //# debugId=652F85A3DD5DD23F64756E2164756E21