UNPKG

studiocms

Version:

Astro Native CMS for AstroDB. Built from the ground up by the Astro community.

59 lines (58 loc) 3.68 kB
import type { CombinedUserData } from 'studiocms:sdk/types'; import { Effect } from '../../effect.js'; import type { UserSessionData } from './types.js'; declare const VerifyEmailError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & { readonly _tag: "VerifyEmailError"; } & Readonly<A>; export declare class VerifyEmailError extends VerifyEmailError_base<{ message: string; }> { } declare const VerifyEmail_base: Effect.Service.Class<VerifyEmail, "studiocms/virtuals/auth/verify-email/VerifyEmail", { readonly effect: Effect.Effect<{ isEmailVerificationEnabled: () => Effect.Effect<boolean, import("@withstudiocms/effect/drizzle").LibSQLClientError | import("../sdk/errors.js").SDKCoreError, never>; getEmailVerificationRequest: (id: string) => Effect.Effect<{ id: string; userId: string; token: string; expiresAt: Date; } | undefined, import("../sdk/errors.js").SDKCoreError, never>; deleteEmailVerificationRequest: (id: string) => Effect.Effect<import("@libsql/client").ResultSet, import("../sdk/errors.js").SDKCoreError, never>; createEmailVerificationRequest: (userId: string) => Effect.Effect<{ id: string; userId: string; token: string; expiresAt: Date; }, import("../sdk/errors.js").SDKCoreError, never>; sendVerificationEmail: (userId: string, isOAuth?: boolean) => Effect.Effect<import("../mailer/index.js").MailerErrorResponse | import("../mailer/index.js").MailerSuccessResponse | undefined, Error | import("../sdk/errors.js").SDKCoreError, never>; isEmailVerified: (user: CombinedUserData | UserSessionData | undefined | null) => Effect.Effect<boolean, import("@withstudiocms/effect/drizzle").LibSQLClientError | import("../sdk/errors.js").SDKCoreError, never>; }, never, import("../mailer/index.js").Mailer>; readonly dependencies: readonly [import("effect/Layer").Layer<import("../mailer/index.js").Mailer, Error, never>]; }>; /** * The `VerifyEmail` service provides functionality for managing email verification * processes within the StudioCMS application. It includes methods for checking * email verification status, creating and deleting verification requests, sending * verification emails, and determining if a user's email is verified based on * various conditions. * * ### Dependencies: * - `Mailer`: Handles email sending operations. * * ### Methods: * - `isEmailVerificationEnabled`: Checks if email verification is enabled in the StudioCMS configuration. * - `getEmailVerificationRequest`: Retrieves an email verification request by its ID. * - `deleteEmailVerificationRequest`: Deletes an email verification request by its ID. * - `createEmailVerificationRequest`: Creates an email verification request for a given user. * - `sendVerificationEmail`: Sends a verification email to the user with the given userId. * - `isEmailVerified`: Checks if the user's email is verified based on various conditions. * * ### Private Utilities: * - `getMailerStatus`: Checks if the mailer service is enabled. * - `getSettings`: Retrieves the notification settings from the database or returns default settings. * - `generateUrl`: Generates a URL with the given base, path, and query parameters. */ export declare class VerifyEmail extends VerifyEmail_base { static Provide: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, Error | E, Exclude<R, VerifyEmail>>; } export {};