{"version":3,"file":"server-CGGSh1TZ.mjs","names":[],"sources":["../src/server/index.ts"],"sourcesContent":["import { serve } from '@hono/node-server'\nimport { createApp } from './app.js'\n\nexport function startServer(port = 4321): () => void {\n  const app    = createApp()\n  const server = serve({\n    fetch:    app.fetch,\n    hostname: '127.0.0.1', // localhost-only — REQUIRED (default 0.0.0.0 is insecure)\n    port,\n  })\n\n  server.on('listening', () => {\n    console.log(`Chain Insights server running on http://127.0.0.1:${port}`)\n  })\n  server.on('error', (err: NodeJS.ErrnoException) => {\n    if (err.code === 'EADDRINUSE') {\n      process.stderr.write(`Port already in use: 127.0.0.1:${port}\\n`)\n    } else {\n      process.stderr.write(`Chain Insights server failed: ${err.message}\\n`)\n    }\n    process.exitCode = 1\n  })\n\n  let stopped = false\n  const stop = (callback?: () => void): void => {\n    if (stopped) {\n      callback?.()\n      return\n    }\n    stopped = true\n    process.off('SIGINT', onSigint)\n    process.off('SIGTERM', onSigterm)\n    server.close(callback)\n  }\n  const onSigint = () => { stop(); process.exit(0) }\n  const onSigterm = () => { stop(() => process.exit(0)) }\n\n  process.on('SIGINT', onSigint)\n  process.on('SIGTERM', onSigterm)\n\n  return stop\n}\n"],"mappings":";;;;;AAGA,SAAgB,YAAY,OAAO,MAAkB;CAEnD,MAAM,SAAS,MAAM;EACnB,OAFa,UAED,CAAC,CAAC;EACd,UAAU;EACV;CACF,CAAC;CAED,OAAO,GAAG,mBAAmB;EAC3B,QAAQ,IAAI,qDAAqD,MAAM;CACzE,CAAC;CACD,OAAO,GAAG,UAAU,QAA+B;EACjD,IAAI,IAAI,SAAS,cACf,QAAQ,OAAO,MAAM,kCAAkC,KAAK,GAAG;OAE/D,QAAQ,OAAO,MAAM,iCAAiC,IAAI,QAAQ,GAAG;EAEvE,QAAQ,WAAW;CACrB,CAAC;CAED,IAAI,UAAU;CACd,MAAM,QAAQ,aAAgC;EAC5C,IAAI,SAAS;GACX,WAAW;GACX;EACF;EACA,UAAU;EACV,QAAQ,IAAI,UAAU,QAAQ;EAC9B,QAAQ,IAAI,WAAW,SAAS;EAChC,OAAO,MAAM,QAAQ;CACvB;CACA,MAAM,iBAAiB;EAAE,KAAK;EAAG,QAAQ,KAAK,CAAC;CAAE;CACjD,MAAM,kBAAkB;EAAE,WAAW,QAAQ,KAAK,CAAC,CAAC;CAAE;CAEtD,QAAQ,GAAG,UAAU,QAAQ;CAC7B,QAAQ,GAAG,WAAW,SAAS;CAE/B,OAAO;AACT"}