studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
59 lines (58 loc) • 3.68 kB
TypeScript
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 {};