{
  "version": 3,
  "sources": ["../../src/router/default_routes.ts"],
  "sourcesContent": ["import { createEndpoint, createRouter } from \"@colyseus/better-call\";\nimport * as matchMaker from \"../MatchMaker.ts\";\nimport { getBearerToken } from \"../utils/Utils.ts\";\nimport { getTransport } from \"../Transport.ts\";\n\nexport const postMatchmakeMethod = createEndpoint(\"/matchmake/:method/:roomName\", { method: \"POST\" }, async (ctx) => {\n  // do not accept matchmaking requests if already shutting down\n  if (matchMaker.state === matchMaker.MatchMakerState.SHUTTING_DOWN) {\n    throw ctx.error(503);\n  }\n\n  const requestHeaders = ctx.request.headers;\n\n  const method = ctx.params.method;\n  const roomName = ctx.params.roomName;\n\n  try {\n    const clientOptions = ctx.body;\n    const response = await matchMaker.controller.invokeMethod(\n      method,\n      roomName,\n      clientOptions,\n      {\n        token: getBearerToken(ctx.request.headers.get('authorization')),\n        headers: ctx.request.headers,\n        ip: requestHeaders.get('x-forwarded-for') ?? requestHeaders.get('x-client-ip') ?? requestHeaders.get('x-real-ip'),\n        req: ctx.request as any,\n      },\n    );\n\n    //\n    // TODO: refactor here.\n    // expose protocol, if available.\n    //\n    const transport = getTransport();\n    if (transport.protocol !== undefined) {\n      response.protocol = transport.protocol;\n    }\n\n    const json = JSON.stringify(response);\n\n    return new Response(json, {\n      headers: {\n        'content-type': 'application/json',\n        //\n        // Set content length manually to avoid \"chunked\" transfer-encoding header\n        // See https://github.com/haxetink/tink_http/issues/27\n        //\n        'content-length': json.length.toString(),\n      },\n    }) as any;\n\n  } catch (e: any) {\n    throw ctx.error(e.code, { code: e.code, error: e.message, });\n  }\n\n});\n\nexport function getDefaultRouter() {\n  return createRouter({ postMatchmakeMethod });\n}"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA6C;AAC7C,iBAA4B;AAC5B,mBAA+B;AAC/B,uBAA6B;AAEtB,IAAM,0BAAsB,mCAAe,gCAAgC,EAAE,QAAQ,OAAO,GAAG,OAAO,QAAQ;AAEnH,MAAe,qBAAqB,2BAAgB,eAAe;AACjE,UAAM,IAAI,MAAM,GAAG;AAAA,EACrB;AAEA,QAAM,iBAAiB,IAAI,QAAQ;AAEnC,QAAM,SAAS,IAAI,OAAO;AAC1B,QAAM,WAAW,IAAI,OAAO;AAE5B,MAAI;AACF,UAAM,gBAAgB,IAAI;AAC1B,UAAM,WAAW,MAAiB,sBAAW;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,WAAO,6BAAe,IAAI,QAAQ,QAAQ,IAAI,eAAe,CAAC;AAAA,QAC9D,SAAS,IAAI,QAAQ;AAAA,QACrB,IAAI,eAAe,IAAI,iBAAiB,KAAK,eAAe,IAAI,aAAa,KAAK,eAAe,IAAI,WAAW;AAAA,QAChH,KAAK,IAAI;AAAA,MACX;AAAA,IACF;AAMA,UAAM,gBAAY,+BAAa;AAC/B,QAAI,UAAU,aAAa,QAAW;AACpC,eAAS,WAAW,UAAU;AAAA,IAChC;AAEA,UAAM,OAAO,KAAK,UAAU,QAAQ;AAEpC,WAAO,IAAI,SAAS,MAAM;AAAA,MACxB,SAAS;AAAA,QACP,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,QAKhB,kBAAkB,KAAK,OAAO,SAAS;AAAA,MACzC;AAAA,IACF,CAAC;AAAA,EAEH,SAAS,GAAQ;AACf,UAAM,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,EAAE,QAAS,CAAC;AAAA,EAC7D;AAEF,CAAC;AAEM,SAAS,mBAAmB;AACjC,aAAO,iCAAa,EAAE,oBAAoB,CAAC;AAC7C;",
  "names": []
}
