@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.82 kB
JavaScript
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../../libs/repositories/media-share-links.mjs";import r from"../../libs/formatters/index.mjs";import{isPast as i}from"date-fns";import{scrypt as a}from"@noble/hashes/scrypt.js";const o=async(o,s)=>{let c=await new n(o.db.client,o.config.db).selectSingleWithMediaByToken({token:s.token});if(c.error)return{error:{type:`basic`,name:e(`server:core.share.links.not.found.title`),status:404,message:e(`server:core.share.links.not.found.message`)},data:void 0};if(c.data.expires_at&&i(c.data.expires_at))return{error:{type:`basic`,name:e(`server:core.share.links.expired.title`),status:410,message:e(`server:core.share.links.expired.message`)},data:void 0};if(r.formatBoolean(c.data.media_is_deleted))return{error:{type:`basic`,name:e(`server:core.share.links.media.deleted.title`),status:410,message:e(`server:core.share.links.media.deleted.message`)},data:void 0};if(c.data.password&&!s.sessionCookie){if(!s.providedPassword)return s.enforcePasswordSession?{error:{type:`authorisation`,name:e(`server:core.share.stream.password.required.title`),status:401,message:e(`server:core.share.stream.password.required.message`)},data:void 0}:{error:void 0,data:{passwordRequired:!0,mediaKey:c.data.media_key,posterKey:c.data.media_poster_key??null}};if(Buffer.from(a(s.providedPassword,o.config.secrets.encryption,t.scrypt)).toString(`base64`)!==c.data.password)return{error:{type:`authorisation`,name:e(`server:core.share.links.access.denied.title`),status:401,message:e(`server:core.share.links.incorrect.password.message`)},data:void 0}}return{error:void 0,data:{mediaKey:c.data.media_key,posterKey:c.data.media_poster_key??null,passwordRequired:!1}}};export{o as default};
//# sourceMappingURL=authorize-share.mjs.map