UNPKG

studiocms

Version:

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

93 lines (92 loc) 6.36 kB
import { Effect } from '../../effect.js'; import { SDKCore as _SDKCore } from './sdkCore.js'; /** * The main Effect-TS based SDK implementation. * This unified SDK merges normal and cached SDK functionalities. * * @remarks * Use this as the entry point for all SDK operations. Provides access to all core features. * * @example * ```ts * import { Effect } from 'studiocms/effect'; * import { SDKCore } from 'studiocms:sdk'; * * const db = Effect.gen(function* () { * const sdk = yield* SDKCore; * return sdk.db; * }); * ``` */ export declare const SDKCore: Effect.Effect<_SDKCore, never, never>; /** * Converts the `SDKCore` effect to a vanilla JavaScript object by removing the `_tag` property. * * @remarks * This function uses `Effect.gen` to yield the `SDKCore` effect, destructures the result to exclude the `_tag` property, * and then passes the remaining core properties to `runEffect`. * * @returns A promise that resolves to the core properties of `SDKCore` as a plain JavaScript object. */ export declare const SDKCoreJs: { db: import("@astrojs/db/runtime").Database; dbService: import("./effect/db.js").AstroDB; getFullPath: (tree: import("./types/index.js").FolderNode[], path: string[]) => Effect.Effect<string[], import("./errors.js").SDKCoreError, never>; findNodeByPath: (tree: import("./types/index.js").FolderNode[], path: string[]) => Effect.Effect<import("./types/index.js").FolderNode | null, import("./errors.js").SDKCoreError, never>; findNodesAlongPath: (tree: import("./types/index.js").FolderNode[], path: string[]) => Effect.Effect<import("./types/index.js").FolderNode[], import("./errors.js").SDKCoreError, never>; findNodesAlongPathToId: (tree: import("./types/index.js").FolderNode[], id: string) => Effect.Effect<import("./types/index.js").FolderNode[], import("./errors.js").SDKCoreError, never>; findNodeById: (tree: import("./types/index.js").FolderNode[], id: string) => Effect.Effect<import("./types/index.js").FolderNode | null, import("./errors.js").SDKCoreError, never>; addPageToFolderTree: (tree: import("./types/index.js").FolderNode[], folderId: string, newPage: import("./types/index.js").FolderNode) => Effect.Effect<import("./types/index.js").FolderNode[], import("./errors.js").SDKCoreError, never>; generateRandomIDNumber: (length: number) => Effect.Effect<number, import("./errors.js").SDKCoreError, never>; generateRandomPassword: (length: number) => Effect.Effect<string, import("./errors.js").SDKCoreError, never>; generateToken: (userId: string, noExpire?: boolean) => Effect.Effect<string, import("./errors.js").SDKCoreError, never>; testToken: (token: string) => Effect.Effect<import("./effect/lib/jwt-generator.js").JwtVerificationResult, import("./errors.js").SDKCoreError, never>; parseIdNumberArray: (ids: unknown) => Effect.Effect<number[], import("./errors.js").SDKCoreError, never>; parseIdStringArray: (ids: unknown) => Effect.Effect<string[], import("./errors.js").SDKCoreError, never>; combineRanks: (rank: string, users: import("./types/tableDefs.js").SingleRank[]) => Effect.Effect<import("./types/tableDefs.js").CombinedRank[], import("./errors.js").SDKCoreError, never>; verifyRank: (users: import("./types/tsAlias.js").tsUsersSelect[], permissions: import("./types/tsAlias.js").tsPermissionsSelect[], rank: string) => Effect.Effect<import("./types/tableDefs.js").SingleRank[], import("./errors.js").SDKCoreError, never>; buildFolderTree: Effect.Effect<import("./types/index.js").FolderNode[], import("@withstudiocms/effect/drizzle").LibSQLClientError | import("./errors.js").SDKCoreError, never>; getAvailableFolders: Effect.Effect<import("./types/index.js").FolderListItem[], import("@withstudiocms/effect/drizzle").LibSQLClientError, never>; clearUserReferences: (userId: string) => Effect.Effect<boolean, import("./errors.js").SDKCoreError, never>; collectCategories: (categoryIds: number[]) => Effect.Effect<{ name: string; description: string; slug: string; id: number; parent: number | null; meta: unknown; }[], import("@withstudiocms/effect/drizzle").LibSQLClientError, never>; collectTags: (tagIds: number[]) => Effect.Effect<{ name: string; description: string; slug: string; id: number; meta: unknown; }[], import("@withstudiocms/effect/drizzle").LibSQLClientError, never>; collectPageData: { (page: import("./types/tsAlias.js").tsPageDataSelect, tree: import("./types/index.js").FolderNode[]): Effect.Effect<import("./types/index.js").CombinedPageData, import("./errors.js").SDKCoreError, never>; (page: import("./types/tsAlias.js").tsPageDataSelect, tree: import("./types/index.js").FolderNode[], metaOnly: boolean): Effect.Effect<import("./types/index.js").MetaOnlyPageData, import("./errors.js").SDKCoreError, never>; }; collectUserData: (user: import("./types/tsAlias.js").tsUsersSelect) => Effect.Effect<import("./types/index.js").CombinedUserData, import("./errors.js").SDKCoreError, never>; resetTokenBucket: import("./modules/resetTokenBucket.js").SDKCore_ResetTokenBucket; diffTracking: import("./modules/diffTracking.js").SDKCore_DiffTracking; notificationSettings: import("./modules/notificationSettings.js").SDKCore_NotificationSettings; CLEAR: import("./modules/clear.js").SDKCore_CLEAR; DELETE: import("./modules/delete.js").SDKCore_DELETE; REST_API: import("./modules/rest_api.js").SDKCore_REST_API; POST: import("./modules/post.js").SDKCore_POST; UPDATE: import("./modules/update.js").SDKCore_UPDATE; GET: import("./modules/get.js").SDKCore_GET; AUTH: import("./modules/auth.js").SDKCore_AUTH; INIT: import("./modules/init.js").SDKCore_INIT; MIDDLEWARES: import("./modules/middlewares.js").SDKCore_MIDDLEWARES; PLUGINS: import("./modules/plugins.js").SDKCore_PLUGINS; CONFIG: import("./modules/config.js").SDKCore_CONFIG; }; /** * Alias for `runEffect`, used to run SDK effects and convert them to plain JavaScript objects. * * @param effect - The Effect to be converted. * @returns A promise that resolves to the plain JavaScript object representation of the effect's result. */ export declare const runSDK: <A, E>(effect: Effect.Effect<A, E, never>) => Promise<A>;