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.
@@ -73,7 +73,7 @@ ${x}`;return F.pop(),`{${s}}`}case"number":return isFinite(z)?String(z):J?J(z):"
73
73
  };
74
74
  </script>
75
75
  </body>
76
- </html>`}}class H1{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 f1{connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Y=new H1($,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 H1($,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 d2{name="websocket";version="1.0.0";manager;constructor(){this.manager=new f1}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 MG=M9(i2(),1),k1=Symbol("graphql:resolver"),j0=Symbol("graphql:field"),g0=Symbol("graphql:args");function EG($){return(J)=>{let Y={target:J,name:$||J.name};Reflect.defineMetadata(k1,Y,J)}}function jG($,J){return h1("query",$,J)}function LG($,J){return h1("mutation",$,J)}function OG($,J){return h1("subscription",$,J)}function h1($,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(j0,X.constructor)||[];q.push(H),Reflect.defineMetadata(j0,q,X.constructor),Reflect.defineMetadata(j0,H,X,Q)}}function KG($,J,Y){return(X,Q,H)=>{if(!Q)return;let q=Reflect.getMetadata(g0,X,Q)||[],G={index:H,name:$,schema:J,description:Y?.description,defaultValue:Y?.defaultValue,nullable:Y?.nullable};q[H]=G,Reflect.defineMetadata(g0,q,X,Q)}}function CG(){return($,J,Y)=>{if(!J)return;let X=Reflect.getMetadata(g0,$,J)||[],Q={index:Y,name:"__context__",nullable:!1};X[Y]=Q,Reflect.defineMetadata(g0,X,$,J)}}function SG($){return Reflect.getMetadata(k1,$)}function PG($){return Reflect.getMetadata(j0,$)||[]}function bG($,J){return Reflect.getMetadata(j0,$,J)}function g1($,J){return Reflect.getMetadata(g0,$,J)||[]}function TG($){return Reflect.hasMetadata(k1,$)}function IG($,J){return Reflect.hasMetadata(j0,$,J)}function u$($){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`[${u$($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return u$($._def.innerType);if(J==="ZodNullable")return u$($._def.innerType);if(J==="ZodDefault")return u$($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Y=$._def.options;if(Y&&Y.length>0)return u$(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 y0($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return y0($._def.innerType);return!1}function o2($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Y=$._def.innerType;if(Y)return o2(Y)}return}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=u$(G),B=y0(G)?W:`${W}!`;Q.push(` ${H}: ${B}`)}return`type ${$} {
76
+ </html>`}}class H1{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 f1{connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection($,J){let Y=new H1($,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 H1($,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 d2{name="websocket";version="1.0.0";manager;constructor(){this.manager=new f1}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 MG=M9(i2(),1),k1=Symbol("graphql:resolver"),j0=Symbol("graphql:field"),g0=Symbol("graphql:args");function EG($){return(J)=>{let Y={target:J,name:$||J.name};Reflect.defineMetadata(k1,Y,J)}}function jG($,J){return h1("query",$,J)}function LG($,J){return h1("mutation",$,J)}function OG($,J){return h1("subscription",$,J)}function h1($,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(j0,X.constructor)||[];q.push(H),Reflect.defineMetadata(j0,q,X.constructor),Reflect.defineMetadata(j0,H,X,Q)}}function KG($,J,Y){return(X,Q,H)=>{if(!Q)return;let q=Reflect.getMetadata(g0,X,Q)||[],G={index:H,name:$,schema:J,description:Y?.description,defaultValue:Y?.defaultValue,nullable:Y?.nullable};q[H]=G,Reflect.defineMetadata(g0,q,X,Q)}}function CG(){return($,J,Y)=>{if(!J)return;let X=Reflect.getMetadata(g0,$,J)||[],Q={index:Y,name:"__context__",nullable:!1};X[Y]=Q,Reflect.defineMetadata(g0,X,$,J)}}function SG($){return Reflect.getMetadata(k1,$)}function PG($){return Reflect.getMetadata(j0,$)||[]}function bG($,J){return Reflect.getMetadata(j0,$,J)}function g1($,J){return Reflect.getMetadata(g0,$,J)||[]}function TG($){return Reflect.hasMetadata(k1,$)}function IG($,J){return Reflect.hasMetadata(j0,$,J)}function u$($){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`[${u$($._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return u$($._def.innerType);if(J==="ZodNullable")return u$($._def.innerType);if(J==="ZodDefault")return u$($._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let Y=$._def.options;if(Y&&Y.length>0)return u$(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 y0($){let J=$._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return y0($._def.innerType);return!1}function o2($){let J=$._def.typeName;if(J==="ZodDefault")return $._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let Y=$._def.innerType;if(Y)return o2(Y)}return}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=u$(G),B=y0(G)?W:`${W}!`;Q.push(` ${H}: ${B}`)}return`type ${$} {
77
77
  ${Q.join(`
78
78
  `)}
79
79
  }`}function vG($,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=u$(G),A=y0(G),B=o2(G),D=A?W:`${W}!`;if(B!==void 0){let j=JSON.stringify(B);D+=` = ${j}`}Q.push(` ${H}: ${D}`)}return`input ${$} {
@@ -142,4 +142,4 @@ ${Q.join(`
142
142
  </html>
143
143
  `.trim()}getSchema(){return this.schema}}var d0;function yX(){if(d0!==void 0)return d0;try{d0=s7()}catch{d0=null}return d0}class t7{logger;constructor($){let J=yX(),Y=!0;if(!J){this.logger=new k$($);return}this.logger=J({level:$?.level||"debug"})}trace($,J){if(this.logger instanceof k$){this.logger.trace($,J);return}this.logger.trace(J||{},$)}debug($,J){if(this.logger instanceof k$){this.logger.debug($,J);return}this.logger.debug(J||{},$)}info($,J){if(this.logger instanceof k$){this.logger.info($,J);return}this.logger.info(J||{},$)}warn($,J){if(this.logger instanceof k$){this.logger.warn($,J);return}this.logger.warn(J||{},$)}error($,J,Y){if(this.logger instanceof k$){this.logger.error($,J,Y);return}this.logger.error({err:J,...Y},$)}fatal($,J,Y){if(this.logger instanceof k$){this.logger.fatal($,J,Y);return}this.logger.fatal({err:J,...Y},$)}child($){if(this.logger instanceof k$)return this.logger.child($);return new x3(this.logger.child($))}}class x3{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 x3(this.logger.child($))}}class k${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 k$({level:this.level},{...this.ctx,...$})}}function e7($){return new t7($)}var n0=null;function xW($){return n0=e7($),n0}function v3(){if(!n0)n0=e7({pretty:!0,level:"debug"});return n0}function f3($){return v3().child($)}function kW(){return async($,J)=>{let Y=f3({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 hW(){return async($,J)=>{try{await J()}catch(Y){throw f3({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 k3($,J){try{Object.defineProperty($,"name",{value:J,configurable:!0,enumerable:!1,writable:!1})}catch{$.__veloceCheckerName=J}}function i0($){let J=$;return $.name||J.__veloceCheckerName||"unknown"}class $9{name="health";version="1.0.0";options;startTime;logger=v3().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[i0(H)]=q,q.status==="unhealthy")X=!1}catch(q){let G=q instanceof Error?q.message:"Unknown error";Y[i0(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=i0(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[i0(q)]=G,G.status==="unhealthy")X=!1}catch(G){X=!1;let W=G instanceof Error?G.message:"Unknown error";Q[i0(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 uX={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 k3(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 k3(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 k3(Y,"disk"),Y}};export{d2 as WebSocketPlugin,c2 as OpenAPIPlugin,uX as HealthCheckers,$9 as HealthCheckPlugin,s2 as GraphQLPlugin};
144
144
 
145
- //# debugId=D7AEEDA19BBB73CD64756E2164756E21
145
+ //# debugId=72A894674D1C22C164756E2164756E21