studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
65 lines (64 loc) • 3.23 kB
TypeScript
import { Effect } from '../../../effect.js';
import { AstroDB, SDKCore_Generators, SDKCore_Users } from '../effect/index.js';
import { SDKCoreError } from '../errors.js';
import type { tsUserResetTokensSelect } from '../types/index.js';
import { SDKCore_UPDATE } from './update.js';
declare const SDKCore_ResetTokenBucket_base: Effect.Service.Class<SDKCore_ResetTokenBucket, "studiocms/sdk/SDKCore/modules/resetTokenBucket", {
readonly dependencies: readonly [import("effect/Layer").Layer<AstroDB, never, never>, import("effect/Layer").Layer<SDKCore_Generators, never, never>, import("effect/Layer").Layer<SDKCore_Users, never, never>, import("effect/Layer").Layer<SDKCore_UPDATE, never, import("../utils.js").CacheContext>];
readonly effect: Effect.Effect<{
/**
* Creates a new reset token for the specified user and stores it in the database.
* @param userId - The ID of the user for whom to create the reset token.
* @returns An effect yielding the created reset token record.
*/
new: (userId: string) => Effect.Effect<tsUserResetTokensSelect, SDKCoreError, never>;
/**
* Deletes all reset tokens associated with the specified user.
* @param userId - The ID of the user whose reset tokens should be deleted.
* @returns An effect yielding void.
*/
delete: (userId: string) => Effect.Effect<void, SDKCoreError, never>;
/**
* Validates whether a given token is valid and exists for a user.
* @param token - The reset token to validate.
* @returns An effect yielding a boolean indicating token validity.
*/
check: (token: string) => Effect.Effect<boolean, SDKCoreError, never>;
}, never, AstroDB | SDKCore_Generators>;
}>;
/**
* Provides an effectful service for managing user reset tokens in the StudioCMS SDK.
*
* This service includes methods to create, delete, and validate reset tokens for users.
* It interacts with the database and token generator services, handling errors gracefully.
*
* @remarks
* - Depends on AstroDB, SDKCore_Generators, SDKCore_Users, and SDKCore_UPDATE services.
* - Handles database errors by wrapping them in `SDKCoreError`.
*
* @example
* ```typescript
* const resetTokenBucket = yield* SDKCore_ResetTokenBucket;
* const token = yield* resetTokenBucket.new(userId);
* const isValid = yield* resetTokenBucket.check(token);
* yield* resetTokenBucket.delete(userId);
* ```
*
* @method new
* Creates a new reset token for the specified user and stores it in the database.
* @param userId - The ID of the user for whom to create the reset token.
* @returns An effect yielding the created reset token record.
*
* @method delete
* Deletes all reset tokens associated with the specified user.
* @param userId - The ID of the user whose reset tokens should be deleted.
* @returns An effect yielding void.
*
* @method check
* Validates whether a given token is valid and exists for a user.
* @param token - The reset token to validate.
* @returns An effect yielding a boolean indicating token validity.
*/
export declare class SDKCore_ResetTokenBucket extends SDKCore_ResetTokenBucket_base {
}
export {};