Spaces:
Runtime error
Runtime error
| import { nanoid } from 'nanoid'; | |
| export const errorHandler = (err, req, res, next) => { | |
| res.status(err?.code || err?.status || 500).json({ ...err, message: err?.message, }); | |
| } | |
| export const setJioCopilotSessionCookie = async (req, res, next = () => { }) => { | |
| let session = req?.cookies?.['__jc_session']; | |
| if (session && (!session.startsWith('jc-') || session.length !== 33)) { | |
| session = null; | |
| } | |
| if (!session) { | |
| session = `jc-${nanoid()}-${encodeTimestampToBase36()}`; | |
| const validity = 7 * 24 * 3600; // 7 days | |
| const cookieOpts = { | |
| domain: process.env.SPACE_HOST || `${'local.'}${'copilotz0.de'}`, | |
| expires: new Date((Date.now() / 1000 + validity) * 1000), | |
| httpOnly: true, | |
| secure: false, | |
| sameSite: 'Lax' | |
| }; | |
| res.cookie('__jc_session', session, cookieOpts); | |
| } | |
| req.jio_copilot_anonymous_session = session; | |
| // res.end() | |
| next(); | |
| }; | |
| export const encodeTimestampToBase36 = (timestamp) => { | |
| const currentTimestamp = timestamp || Date.now(); | |
| const base36Timestamp = currentTimestamp.toString(36); | |
| return base36Timestamp; | |
| }; | |