{"version":3,"file":"generate-token.mjs","names":["constants"],"sources":["../../../../src/services/auth/access-token/generate-token.ts"],"sourcesContent":["import { randomBytes } from \"node:crypto\";\nimport { setCookie } from \"hono/cookie\";\nimport { sign } from \"hono/jwt\";\nimport constants from \"../../../constants/constants.js\";\nimport type {\n\tLucidAccessToken,\n\tLucidHonoContext,\n} from \"../../../types/hono.js\";\nimport { isRequestSecure } from \"../../../utils/helpers/index.js\";\nimport type { ServiceResponse } from \"../../../utils/services/types.js\";\n\nconst generateToken = async (\n\tc: LucidHonoContext,\n\tuserId: number,\n): ServiceResponse<undefined> => {\n\ttry {\n\t\tconst config = c.get(\"config\");\n\n\t\tconst now = Date.now();\n\t\tconst nonce = randomBytes(8).toString(\"hex\");\n\n\t\tconst token = await sign(\n\t\t\t{\n\t\t\t\tid: userId,\n\t\t\t\texp: Math.floor(now / 1000) + constants.accessTokenExpiration,\n\t\t\t\tiat: Math.floor(now / 1000),\n\t\t\t\tnonce: nonce,\n\t\t\t} satisfies LucidAccessToken,\n\t\t\tconfig.secrets.accessToken,\n\t\t\tconstants.jwt.algorithm,\n\t\t);\n\n\t\tsetCookie(c, constants.cookies.accessToken, token, {\n\t\t\tmaxAge: constants.accessTokenExpiration,\n\t\t\thttpOnly: true,\n\t\t\tsecure: isRequestSecure(c),\n\t\t\tsameSite: \"strict\",\n\t\t\tpath: \"/\",\n\t\t});\n\n\t\treturn {\n\t\t\terror: undefined,\n\t\t\tdata: undefined,\n\t\t};\n\t} catch (_err) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\ttype: \"authorisation\",\n\t\t\t},\n\t\t\tdata: undefined,\n\t\t};\n\t}\n};\n\nexport default generateToken;\n"],"mappings":"8NAWA,MAAM,EAAgB,MACrB,EACA,IACgC,CAChC,GAAI,CACH,IAAM,EAAS,EAAE,IAAI,QAAQ,EAEvB,EAAM,KAAK,IAAI,EACf,EAAQ,EAAY,CAAC,CAAC,CAAC,SAAS,KAAK,EAErC,EAAQ,MAAM,EACnB,CACC,GAAI,EACJ,IAAK,KAAK,MAAM,EAAM,GAAI,EAAIA,EAAU,sBACxC,IAAK,KAAK,MAAM,EAAM,GAAI,EACnB,OACR,EACA,EAAO,QAAQ,YACfA,EAAU,IAAI,SACf,EAUA,OARA,EAAU,EAAGA,EAAU,QAAQ,YAAa,EAAO,CAClD,OAAQA,EAAU,sBAClB,SAAU,GACV,OAAQ,EAAgB,CAAC,EACzB,SAAU,SACV,KAAM,GACP,CAAC,EAEM,CACN,MAAO,IAAA,GACP,KAAM,IAAA,EACP,CACD,MAAe,CACd,MAAO,CACN,MAAO,CACN,KAAM,eACP,EACA,KAAM,IAAA,EACP,CACD,CACD"}