/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@tradle/bitkeeper-server@0.0.2/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var typeforce=require("typeforce"),express=require("express"),debug=require("debug")("bitkeeper-server"),domain=require("domain"),utils=require("@tradle/utils"),router=require("./router");function createServer(e,r){typeforce({keeper:"Object",port:"Number",readonly:"?Boolean",local:"?Boolean"},e);var o=e.keeper,s=e.port,t=express(),n=e.local;e.readonly&&t.set("readonly",!0),t.set("keeper",o),t.use((function(e,r,o){var s=domain.create();s.add(e),s.add(r),s.on("error",(function(o){debug("Uncaught error, processing in domain error handler: "+o.message),u(o,e,r)})),r.on("close",s.dispose.bind(s)),s.run(o)})),t.use((function(e,r,o){if(n&&"localhost"!==e.hostname&&"127.0.0.1"!==e.hostname)throw utils.httpError(400,"Only local requests permitted");o()})),router(t),t.use(u),process.on("exit",i),process.on("SIGINT",i),process.on("SIGTERM",i),process.on("uncaughtException",(function(e){console.log("Uncaught exception, caught in process catch-all: "+e.message),console.log(e.stack)}));var c=s,a=t.listen(c,(function(){!0&&r&&r(null,a)}));function u(e,r,o,s){if(!o.finished){var t=e.code||500,n="code"in e?e.message:"There was an error with your request. Please contact support@tradle.io";o.status(t).json({code:t,message:n},null,2)}}function i(){if(a){if(debug("CLEANUP"),a){try{a.close()}catch(e){}a=null}setTimeout(process.exit.bind(process),1e3)}}return a}module.exports={create:createServer};
//# sourceMappingURL=/sm/b809098826914b9d073b504e64d06241678f4f679d2cd9daa8d4960a22b97286.map