UNPKG

@inkwell.ar/sdk

Version:

SDK for interacting with the Inkwell Blog CRUD AO process using aoconnect for deployment and interactions

194 lines 5.43 kB
import { LogLevel } from '../utils/logger'; export interface BlogPost { id: number; title: string; description: string; body?: string; published_at: number; last_update: number; labels?: string[]; authors: string[]; } export interface BlogDetails { title: string; description: string; logo: string; } export interface BlogInfo { name: string; author: string; blogTitle: string; blogDescription: string; blogLogo: string; details: BlogDetails; } export interface UpdateBlogDetailsData { title?: string; description?: string; logo?: string; } export interface CreatePostData { title: string; description: string; body?: string; published_at: number; last_update: number; labels?: string[]; authors: string[]; } export interface UpdatePostData extends CreatePostData { } export interface ApiResponse<T = any> { success: boolean; data: T | string; } export type RoleUpdateResult = [string, boolean, string?]; export interface GetPostsOptions { ordered?: boolean; } export interface GetPostOptions { id: number; } export interface CreatePostOptions { data: CreatePostData; wallet?: any; } export interface UpdatePostOptions { id: number; data: UpdatePostData; wallet?: any; } export interface DeletePostOptions { id: number; wallet?: any; } export interface RoleManagementOptions { accounts: string[]; wallet?: any; } export interface BlogSDKConfig { processId: string; wallet?: any; aoconnect?: any; logLevel?: LogLevel; } export interface RegistrySDKConfig { registryProcessId?: string; aoconnect?: any; logLevel?: LogLevel; } export { LogLevel, LogGroup } from '../utils/logger'; export interface ParseResponseOptions { result: any; isDryrun?: boolean; recursiveParse?: boolean; optionsWallet?: string; } export interface DeployConfig { name?: string; wallet?: string | any; contractPath?: string; tags?: Array<{ name: string; value: string; }>; retry?: { count: number; delay: number; }; luaPath?: string; minify?: boolean; contractTransformer?: (source: string) => string; onBoot?: boolean; silent?: boolean; blueprints?: string[]; forceSpawn?: boolean; } export interface DeployResult { processId: string; messageId?: string; } export interface DeployOptions { name?: string; wallet?: string | any; contractPath?: string; tags?: Array<{ name: string; value: string; }>; retry?: { count: number; delay: number; }; luaPath?: string; minify?: boolean; contractTransformer?: (source: string) => string; onBoot?: boolean; silent?: boolean; blueprints?: string[]; forceSpawn?: boolean; aoconnect?: any; logLevel?: LogLevel; pollForSpawn?: boolean; } export interface BlogSDK { getInfo(): Promise<ApiResponse<BlogInfo>>; getAllPosts(options?: GetPostsOptions): Promise<ApiResponse<BlogPost[]>>; getPost(options: GetPostOptions): Promise<ApiResponse<BlogPost>>; getUserRoles(walletAddress: string): Promise<ApiResponse<string[]>>; createPost(options: CreatePostOptions): Promise<ApiResponse<BlogPost | string>>; updatePost(options: UpdatePostOptions): Promise<ApiResponse<BlogPost | string>>; deletePost(options: DeletePostOptions): Promise<ApiResponse<string>>; addEditors(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>; removeEditors(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>; addAdmins(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>; removeAdmins(options: RoleManagementOptions): Promise<ApiResponse<RoleUpdateResult[] | string>>; getEditors(): Promise<ApiResponse<string[]>>; getAdmins(): Promise<ApiResponse<string[]>>; setBlogDetails(options: { data: UpdateBlogDetailsData; wallet?: any; }): Promise<ApiResponse<BlogDetails | string>>; } export interface RegistrySDK { getWalletBlogs(wallet: string): Promise<BlogPermission[]>; getBlogWallets(blogId: string): Promise<WalletPermission[]>; checkWalletRole(wallet: string, blogId: string, role: string): Promise<boolean>; getRegistryStats(): Promise<RegistryStats>; getAdminBlogs(wallet: string): Promise<BlogPermission[]>; getEditableBlogs(wallet: string): Promise<BlogPermission[]>; canAdminBlog(wallet: string, blogId: string): Promise<boolean>; canEditBlog(wallet: string, blogId: string): Promise<boolean>; } export declare const Role: { readonly ADMIN: "DEFAULT_ADMIN_ROLE"; readonly EDITOR: "EDITOR_ROLE"; }; export type Role = (typeof Role)[keyof typeof Role]; export interface BlogPermission { blog_id: string; roles: Role[]; last_updated: number; } export interface WalletPermission { wallet: string; roles: string[]; last_updated: number; } export interface RegistryStats { version: string; wallet_count: number; blog_count: number; total_permissions: number; } export interface SyncResult { wallet: string; roles: string[]; synced: boolean; } export interface SyncResponse { message: string; synced_wallets: number; results: SyncResult[]; } //# sourceMappingURL=index.d.ts.map