@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 2.71 kB
JavaScript
import{decrypt as e}from"../../utils/helpers/encrypt-decrypt.mjs";import t from"../../libs/repositories/options.mjs";import n from"../../libs/lucid-remote/services/verify-cms-license.mjs";import{getLicenseOptionBaseName as r,getLicenseOptionName as i,getLicenseOptionNames as a}from"./helpers/option-names.mjs";import{getUnixTimeSeconds as o}from"../../utils/helpers/time.mjs";import s from"../../libs/formatters/license.mjs";import c from"../../libs/formatters/index.mjs";const l=async(l,u)=>{let d=new t(l.db.client,l.config.db),f=o(),p=u.tenantKey??null,m=await d.selectMultiple({select:[`name`,`value_bool`,`value_text`],where:[{key:`name`,operator:`in`,value:a(p,[`license_valid`,`license_error_message`,`license_ai_enabled`])}]});if(m.error)return m;let h={valid:c.formatBoolean(m.data?.find(e=>r(e.name)===`license_valid`)?.value_bool)??!1,aiEnabled:c.formatBoolean(m.data?.find(e=>r(e.name)===`license_ai_enabled`)?.value_bool)??!1,errorMessage:m.data?.find(e=>r(e.name)===`license_error_message`)?.value_text??null},g=async e=>{let[t,n,r,a]=await Promise.all([d.upsertSingle({data:{name:i(p,`license_valid`),value_bool:e.valid}}),d.upsertSingle({data:{name:i(p,`license_last_checked`),value_int:f}}),d.upsertSingle({data:{name:i(p,`license_error_message`),value_text:e.errorMessage}}),d.upsertSingle({data:{name:i(p,`license_ai_enabled`),value_bool:e.aiEnabled}})]);return t.error?t:n.error?n:r.error?r:a.error?a:{error:void 0,data:void 0}},_=await d.selectSingle({select:[`name`,`value_text`],where:[{key:`name`,operator:`=`,value:i(p,`license_key`)}]});if(_.error)return _;if(!_.data){let e=await g({valid:!1,aiEnabled:!1,errorMessage:l.translate(`server:core.license.is.not.set`)});return e.error?e:{error:void 0,data:{key:null,valid:!1,lastChecked:f,errorMessage:l.translate(`server:core.license.is.not.set`),aiEnabled:!1}}}let v=_.data?.value_text,y=v?e(v,l.config.secrets.encryption):void 0,b=s.createLicenseKeyDisplay(y);if(!y?.trim()){let e=await g({valid:!1,aiEnabled:!1,errorMessage:l.translate(`server:core.license.is.not.set`)});return e.error?e:{error:void 0,data:{key:null,valid:!1,lastChecked:f,errorMessage:l.translate(`server:core.license.is.not.set`),aiEnabled:!1}}}let x,S=await n(l,{licenseKey:y});if(S.error){let e=l.translate(S.error.message)||l.translate(`server:core.license.verification.failed`);x={...h,errorMessage:e}}else{let e=S.data.json.data,t=!!e.valid;x={valid:t,aiEnabled:t&&e.ai.enabled,errorMessage:e.message||(t?null:l.translate(`server:core.license.is.invalid`))}}let C=await g(x);return C.error?C:{error:void 0,data:{key:b,valid:x.valid,lastChecked:f,errorMessage:x.errorMessage,aiEnabled:x.aiEnabled}}};export{l as default};
//# sourceMappingURL=verify.mjs.map