UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

99 lines (81 loc) 2.08 kB
// Import types from drizzle schema import type { feeds } from "@folo-services/drizzle" import type { InferInsertModel, InferSelectModel } from "drizzle-orm" import type { FeedIdRequest, SerializedInsertModel, SerializedModel } from "../../types" // Re-export database types with proper date serialization export type FeedModel = SerializedModel<InferSelectModel<typeof feeds>> export type FeedInsert = SerializedInsertModel<InferInsertModel<typeof feeds>> // Feed-related API request/response types export interface FeedGetQuery { id?: string url?: string entriesLimit?: number } export interface FeedGetResponse { feed: FeedModel entries?: any[] subscription?: any readCount?: number subscriptionCount?: number } export interface FeedRefreshRequest { url: string force?: boolean } export interface FeedRefreshResponse { success: boolean message?: string } export interface FeedAnalyticsQuery extends FeedIdRequest { timeRange?: "7d" | "30d" | "90d" } export interface FeedAnalyticsResponse { views: number subscribers: number engagement: number growth: number } export interface FeedResetRequest extends FeedIdRequest { reason?: string } export interface FeedResetResponse { success: boolean message?: string } // Feed claim types export interface FeedClaimChallengeRequest extends FeedIdRequest { challenge: string } export interface FeedClaimChallengeResponse { success: boolean message?: string } export interface FeedClaimListQuery { page?: number limit?: number status?: "pending" | "approved" | "rejected" } export interface FeedClaimItem { id: string feedId: string userId: string status: "pending" | "approved" | "rejected" createdAt: string updatedAt: string } export interface FeedClaimListResponse { claims: FeedClaimItem[] pagination: { page: number limit: number total: number hasMore: boolean } } export interface FeedClaimMessageRequest extends FeedIdRequest { message: string } export interface FeedClaimMessageResponse { success: boolean message?: string }