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