UNPKG

@lucidcms/core

Version:

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

2 lines 5.04 kB
import e from"../../constants/constants.mjs";import t from"./parents/static-repository.mjs";import n from"zod";var r=class extends t{constructor(e,t){super(e,t,`lucid_email_change_requests`)}tableSchema=n.object({id:n.number(),user_id:n.number(),old_email:n.email(),new_email:n.email(),confirm_token_id:n.number(),revert_token_id:n.number(),status:n.union([n.literal(e.emailChangeRequestStatuses.pending),n.literal(e.emailChangeRequestStatuses.confirmed),n.literal(e.emailChangeRequestStatuses.cancelled),n.literal(e.emailChangeRequestStatuses.reverted),n.literal(e.emailChangeRequestStatuses.superseded)]),confirmed_at:n.union([n.string(),n.date()]).nullable(),cancelled_at:n.union([n.string(),n.date()]).nullable(),reverted_at:n.union([n.string(),n.date()]).nullable(),created_at:n.union([n.string(),n.date()]).nullable(),updated_at:n.union([n.string(),n.date()]).nullable(),expires_at:n.union([n.string(),n.date()])});columnFormats={id:this.dbAdapter.getDataType(`primary`),user_id:this.dbAdapter.getDataType(`integer`),old_email:this.dbAdapter.getDataType(`text`),new_email:this.dbAdapter.getDataType(`text`),confirm_token_id:this.dbAdapter.getDataType(`integer`),revert_token_id:this.dbAdapter.getDataType(`integer`),status:this.dbAdapter.getDataType(`varchar`,255),confirmed_at:this.dbAdapter.getDataType(`timestamp`),cancelled_at:this.dbAdapter.getDataType(`timestamp`),reverted_at:this.dbAdapter.getDataType(`timestamp`),created_at:this.dbAdapter.getDataType(`timestamp`),updated_at:this.dbAdapter.getDataType(`timestamp`),expires_at:this.dbAdapter.getDataType(`timestamp`)};queryConfig={tableKeys:{filters:{userId:`user_id`,oldEmail:`old_email`,newEmail:`new_email`,status:`status`},sorts:{createdAt:`created_at`,updatedAt:`updated_at`,expiresAt:`expires_at`}},operators:{oldEmail:`contains`,newEmail:`contains`}};async selectActivePendingForUser(t){let n=this.db.selectFrom(`lucid_email_change_requests`).select([`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]).where(`user_id`,`=`,t.userId).where(`status`,`=`,e.emailChangeRequestStatuses.pending).where(`expires_at`,`>`,new Date().toISOString()),r=await this.executeQuery(()=>n.executeTakeFirst(),{method:`selectActivePendingForUser`});return r.response.error?r.response:this.validateResponse(r,{...t.validation,mode:`single`,select:[`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]})}async selectByConfirmTokenId(e){let t=this.db.selectFrom(`lucid_email_change_requests`).select([`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]).where(`confirm_token_id`,`=`,e.tokenId).where(`expires_at`,`>`,new Date().toISOString()),n=await this.executeQuery(()=>t.executeTakeFirst(),{method:`selectByConfirmTokenId`});return n.response.error?n.response:this.validateResponse(n,{...e.validation,mode:`single`,select:[`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]})}async selectByRevertTokenId(e){let t=this.db.selectFrom(`lucid_email_change_requests`).select([`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]).where(`revert_token_id`,`=`,e.tokenId).where(`expires_at`,`>`,new Date().toISOString()),n=await this.executeQuery(()=>t.executeTakeFirst(),{method:`selectByRevertTokenId`});return n.response.error?n.response:this.validateResponse(n,{...e.validation,mode:`single`,select:[`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]})}async selectReservedByEmail(t){let n=new Date().toISOString(),r=this.db.selectFrom(`lucid_email_change_requests`).select([`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]).where(r=>r.or([r.and([r(`new_email`,`=`,t.email),r(`status`,`=`,e.emailChangeRequestStatuses.pending),r(`expires_at`,`>`,n)]),r.and([r(`old_email`,`=`,t.email),r(`status`,`=`,e.emailChangeRequestStatuses.confirmed),r(`expires_at`,`>`,n)])]));t.excludeUserId!==void 0&&(r=r.where(`user_id`,`!=`,t.excludeUserId));let i=await this.executeQuery(()=>r.executeTakeFirst(),{method:`selectReservedByEmail`});return i.response.error?i.response:this.validateResponse(i,{...t.validation,mode:`single`,select:[`id`,`user_id`,`old_email`,`new_email`,`confirm_token_id`,`revert_token_id`,`status`,`confirmed_at`,`cancelled_at`,`reverted_at`,`created_at`,`updated_at`,`expires_at`]})}};export{r as default}; //# sourceMappingURL=email-change-requests.mjs.map