UNPKG

studiocms

Version:

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

41 lines (40 loc) 1.74 kB
import { Effect } from '../../../effect.js'; import { SDKCoreError } from '../errors.js'; import type { CombinedRank, SingleRank, tsPermissionsSelect, tsUsersSelect } from '../types/index.js'; import { AstroDB } from './db.js'; declare const SDKCore_Users_base: Effect.Service.Class<SDKCore_Users, "studiocms/sdk/SDKCore_Users", { readonly effect: Effect.Effect<{ verifyRank: (users: tsUsersSelect[], permissions: tsPermissionsSelect[], rank: string) => Effect.Effect<SingleRank[], SDKCoreError, never>; combineRanks: (rank: string, users: SingleRank[]) => Effect.Effect<CombinedRank[], SDKCoreError, never>; clearUserReferences: (userId: string) => Effect.Effect<boolean, SDKCoreError, never>; }, never, AstroDB>; readonly dependencies: readonly [import("effect/Layer").Layer<AstroDB, never, never>]; }>; /** * SDKCore_Users provides core user-related effects for the StudioCMS SDK. * * @remarks * This service includes utilities for verifying user ranks, combining rank data, * and clearing all references to a user from the database. It leverages the Effect system * for composable error handling and dependency injection. * * @example * ```typescript * const usersService = SDKCore_Users; * const result = usersService.verifyRank(users, permissions, 'admin'); * ``` * * @effect * - `verifyRank`: Filters users by rank based on permissions. * - `combineRanks`: Combines a given rank with user data. * - `clearUserReferences`: Removes all references to a user from related tables. * * @dependencies * - Depends on AstroDB for database operations. * * @accessors * - Provides accessors for each effect. */ export declare class SDKCore_Users extends SDKCore_Users_base { } export {};