{"version":3,"file":"token.mjs","names":["constants","authServices.refreshToken.verifyToken","authServices.refreshToken.generateToken","authServices.accessToken.generateToken"],"sources":["../../../../../src/libs/http/controllers/auth/token.ts"],"sourcesContent":["import { minutesToMilliseconds } from \"date-fns\";\nimport { createFactory } from \"hono/factory\";\nimport { describeRoute } from \"hono-openapi\";\nimport constants from \"../../../../constants/constants.js\";\nimport { authServices } from \"../../../../services/index.js\";\nimport { LucidAPIError } from \"../../../../utils/errors/index.js\";\nimport rateLimiter from \"../../middleware/rate-limiter.js\";\nimport validateCSRF from \"../../middleware/validate-csrf.js\";\nimport openAPI from \"../../openapi/index.js\";\n\nconst factory = createFactory();\n\nconst tokenController = factory.createHandlers(\n\tdescribeRoute({\n\t\tdescription:\n\t\t\t\"Verifies the refresh token and issues a new access and refresh token.\",\n\t\ttags: [\"auth\"],\n\t\tsummary: \"Refresh Token\",\n\t\tresponses: openAPI.responses(),\n\t\tparameters: openAPI.parameters({\n\t\t\theaders: {\n\t\t\t\tcsrf: true,\n\t\t\t},\n\t\t}),\n\t}),\n\tvalidateCSRF,\n\trateLimiter({\n\t\tmode: \"ip\",\n\t\tlimit: constants.rateLimit.scopes.sensitive.limit,\n\t\tscope: constants.rateLimit.scopes.sensitive.scopeKey,\n\t\twindowMs: minutesToMilliseconds(1),\n\t}),\n\tasync (c) => {\n\t\tconst payloadRes = await authServices.refreshToken.verifyToken(c);\n\t\tif (payloadRes.error) throw new LucidAPIError(payloadRes.error);\n\n\t\tconst [refreshRes, accessRes] = await Promise.all([\n\t\t\tauthServices.refreshToken.generateToken(c, payloadRes.data.user_id),\n\t\t\tauthServices.accessToken.generateToken(c, payloadRes.data.user_id),\n\t\t]);\n\n\t\tif (refreshRes.error) throw new LucidAPIError(refreshRes.error);\n\t\tif (accessRes.error) throw new LucidAPIError(accessRes.error);\n\n\t\tc.status(204);\n\t\treturn c.body(null);\n\t},\n);\n\nexport default tokenController;\n"],"mappings":"+lBAYA,MAAM,EAFU,EAEc,CAAC,CAAC,eAC/B,EAAc,CACb,YACC,wEACD,KAAM,CAAC,MAAM,EACb,QAAS,gBACT,UAAW,EAAQ,UAAU,EAC7B,WAAY,EAAQ,WAAW,CAC9B,QAAS,CACR,KAAM,EACP,CACD,CAAC,CACF,CAAC,EACD,EACA,EAAY,CACX,KAAM,KACN,MAAOA,EAAU,UAAU,OAAO,UAAU,MAC5C,MAAOA,EAAU,UAAU,OAAO,UAAU,SAC5C,SAAU,EAAsB,CAAC,CAClC,CAAC,EACD,KAAO,IAAM,CACZ,IAAM,EAAa,MAAMC,EAAsC,CAAC,EAChE,GAAI,EAAW,MAAO,MAAM,IAAI,EAAc,EAAW,KAAK,EAE9D,GAAM,CAAC,EAAY,GAAa,MAAM,QAAQ,IAAI,CACjDC,EAAwC,EAAG,EAAW,KAAK,OAAO,EAClEC,EAAuC,EAAG,EAAW,KAAK,OAAO,CAClE,CAAC,EAED,GAAI,EAAW,MAAO,MAAM,IAAI,EAAc,EAAW,KAAK,EAC9D,GAAI,EAAU,MAAO,MAAM,IAAI,EAAc,EAAU,KAAK,EAG5D,OADA,EAAE,OAAO,GAAG,EACL,EAAE,KAAK,IAAI,CACnB,CACD"}