{"version":3,"file":"session.mjs","sources":["../../src/middlewares/session.ts"],"sourcesContent":["import { isEmpty, isArray } from 'lodash/fp';\nimport koaSession from 'koa-session';\nimport type { Core } from '@strapi/types';\n\nconst defaultConfig = {\n  key: 'koa.sess',\n  maxAge: 86400000,\n  autoCommit: true,\n  overwrite: true,\n  httpOnly: true,\n  signed: true,\n  rolling: false,\n  renew: false,\n  secure: process.env.NODE_ENV === 'production',\n  sameSite: undefined,\n};\n\nexport const session: Core.MiddlewareFactory<Partial<koaSession.opts>> = (\n  userConfig,\n  { strapi }\n) => {\n  const { keys } = strapi.server.app;\n  if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {\n    throw new Error(\n      `App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`\n    );\n  }\n\n  const config: Partial<koaSession.opts> = { ...defaultConfig, ...userConfig };\n\n  strapi.server.use(koaSession(config, strapi.server.app));\n};\n"],"names":["defaultConfig","key","maxAge","autoCommit","overwrite","httpOnly","signed","rolling","renew","secure","process","env","NODE_ENV","sameSite","undefined","session","userConfig","strapi","keys","server","app","isArray","isEmpty","some","Error","config","use","koaSession"],"mappings":";;;AAIA,MAAMA,aAAAA,GAAgB;IACpBC,GAAAA,EAAK,UAAA;IACLC,MAAAA,EAAQ,QAAA;IACRC,UAAAA,EAAY,IAAA;IACZC,SAAAA,EAAW,IAAA;IACXC,QAAAA,EAAU,IAAA;IACVC,MAAAA,EAAQ,IAAA;IACRC,OAAAA,EAAS,KAAA;IACTC,KAAAA,EAAO,KAAA;AACPC,IAAAA,MAAAA,EAAQC,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,YAAA;IACjCC,QAAAA,EAAUC;AACZ,CAAA;MAEaC,OAAAA,GAA4D,CACvEC,UAAAA,EACA,EAAEC,MAAM,EAAE,GAAA;AAEV,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAACC,GAAG;IAClC,IAAI,CAACC,QAAQH,IAAAA,CAAAA,IAASI,OAAAA,CAAQJ,SAASA,IAAAA,CAAKK,IAAI,CAACD,OAAAA,CAAAA,EAAU;AACzD,QAAA,MAAM,IAAIE,KAAAA,CACR,CAAC,+FAA+F,CAAC,CAAA;AAErG,IAAA;AAEA,IAAA,MAAMC,MAAAA,GAAmC;AAAE,QAAA,GAAGzB,aAAa;AAAE,QAAA,GAAGgB;AAAW,KAAA;IAE3EC,MAAAA,CAAOE,MAAM,CAACO,GAAG,CAACC,WAAWF,MAAAA,EAAQR,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAA,CAAA;AACxD;;;;"}