UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 1.01 kB
import e from"../../../constants/constants.mjs";import t from"../../../libs/repositories/user-tokens.mjs";import n from"../../../libs/kv/cache-keys.mjs";const r=async(r,i)=>{let a=new t(r.db.client,r.config.db),o=new Date().toISOString(),s=await a.selectMultiple({select:[`id`,`token`],where:[{key:`user_id`,operator:`=`,value:i.userId},{key:`token_type`,operator:`=`,value:e.userTokens.refresh},{key:`revoked_at`,operator:`is`,value:null},{key:`expiry_date`,operator:`>`,value:o}],validation:{enabled:!0}});if(s.error)return s;if(s.data.length===0)return{error:void 0,data:{revokedCount:0}};let c=s.data.map(e=>e.id),l=await a.updateMultiple({data:{revoked_at:o,revoke_reason:i.revokeReason??e.refreshTokenRevokeReasons.revokeAll,expiry_date:o},where:[{key:`id`,operator:`in`,value:c}]});return l.error?l:(await Promise.all(s.data.map(e=>r.kv.delete(r,{key:n.auth.refresh(e.token),hash:!0}))),{error:void 0,data:{revokedCount:s.data.length}})};export{r as default}; //# sourceMappingURL=revoke-user-tokens.mjs.map