{"version":3,"file":"openid-handlers.mjs","names":[],"sources":["../../src/handlers/openid-handlers.ts"],"sourcesContent":["import type { Request, RequestHandler } from \"express\";\nimport { JWKS } from \"../auth/constants.ts\";\nimport { removeTrailingSlash } from \"./url.ts\";\n\ntype Routes = \"/jwks.json\" | \"/openid-configuration\";\n\nexport type OpenIdRoutes = `${`/.well-known`}${Routes}`;\n\nexport interface OpenIdConfiguration {\n  issuer: string;\n  authorization_endpoint: string;\n  token_endpoint: string;\n  userinfo_endpoint: string;\n  jwks_uri: string;\n}\n\nexport const createOpenIdHandlers = (\n  serviceURL: (request: Request) => string\n): Record<OpenIdRoutes, RequestHandler> => {\n  return {\n    [\"/.well-known/jwks.json\"]: function (_, res) {\n      res.status(200).json(JWKS);\n    },\n\n    [\"/.well-known/openid-configuration\"]: function (req, res) {\n      let url = removeTrailingSlash(serviceURL(req));\n\n      res.status(200).json({\n        issuer: `${url}/`,\n        authorization_endpoint: [url, \"authorize\"].join(\"/\"),\n        token_endpoint: [url, \"oauth\", \"token\"].join(\"/\"),\n        userinfo_endpoint: [url, \"userinfo\"].join(\"/\"),\n        jwks_uri: [url, \".well-known\", \"jwks.json\"].join(\"/\"),\n      });\n    },\n  };\n};\n"],"mappings":";;;;AAgBA,MAAa,wBACX,eACyC;AACzC,QAAO;EACL,CAAC,2BAA2B,SAAU,GAAG,KAAK;AAC5C,OAAI,OAAO,IAAI,CAAC,KAAK,KAAK;;EAG5B,CAAC,sCAAsC,SAAU,KAAK,KAAK;GACzD,IAAI,MAAM,oBAAoB,WAAW,IAAI,CAAC;AAE9C,OAAI,OAAO,IAAI,CAAC,KAAK;IACnB,QAAQ,GAAG,IAAI;IACf,wBAAwB,CAAC,KAAK,YAAY,CAAC,KAAK,IAAI;IACpD,gBAAgB;KAAC;KAAK;KAAS;KAAQ,CAAC,KAAK,IAAI;IACjD,mBAAmB,CAAC,KAAK,WAAW,CAAC,KAAK,IAAI;IAC9C,UAAU;KAAC;KAAK;KAAe;KAAY,CAAC,KAAK,IAAI;IACtD,CAAC;;EAEL"}