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