UNPKG

@veas/protocol

Version:

Universal protocol for knowledge management and project tracking systems - enabling seamless interoperability between platforms and AI assistants

154 lines 3.65 kB
import type { Entity } from '../common/index.js'; export interface Article extends Entity { title: string; slug: string; content: string; excerpt?: string; status: ArticleStatus; authorId: string; publicationId?: string; folderId?: string; tags?: Tag[]; publishedAt?: Date; metadata?: ArticleMetadata; } export type ArticleStatus = 'draft' | 'published' | 'archived'; export interface ArticleMetadata { readTime?: number; wordCount?: number; views?: number; likes?: number; featuredImage?: string; seoTitle?: string; seoDescription?: string; customData?: Record<string, unknown>; } export interface CreateArticleData { title: string; slug?: string; content: string; excerpt?: string; status?: ArticleStatus; publicationId?: string; folderId?: string; tags?: string[]; metadata?: Partial<ArticleMetadata>; } export interface UpdateArticleData { title?: string; slug?: string; content?: string; excerpt?: string; status?: ArticleStatus; folderId?: string; tags?: string[]; metadata?: Partial<ArticleMetadata>; } export interface Folder extends Entity { name: string; slug: string; description?: string; parentId?: string; publicationId?: string; order?: number; metadata?: Record<string, unknown>; } export interface CreateFolderData { name: string; slug?: string; description?: string; parentId?: string; publicationId?: string; order?: number; metadata?: Record<string, unknown>; } export interface UpdateFolderData { name?: string; slug?: string; description?: string; parentId?: string; order?: number; metadata?: Record<string, unknown>; } export interface Tag extends Entity { name: string; slug: string; description?: string; color?: string; publicationId?: string; articleCount?: number; } export interface CreateTagData { name: string; slug?: string; description?: string; color?: string; publicationId?: string; } export interface UpdateTagData { name?: string; slug?: string; description?: string; color?: string; } export interface Publication extends Entity { name: string; slug: string; description?: string; ownerId: string; settings?: PublicationSettings; } export interface PublicationSettings { theme?: string; domain?: string; analytics?: Record<string, unknown>; customCss?: string; customJs?: string; } export interface EditorCommand extends Entity { name: string; description?: string; command: string; shortcut?: string; category?: string; isActive: boolean; publicationId?: string; } export interface CreateEditorCommandData { name: string; description?: string; command: string; shortcut?: string; category?: string; isActive?: boolean; publicationId?: string; } export interface UpdateEditorCommandData { name?: string; description?: string; command?: string; shortcut?: string; category?: string; isActive?: boolean; } export interface ArticleFilters { publicationId?: string; folderId?: string; status?: ArticleStatus | ArticleStatus[]; authorId?: string; tags?: string[]; search?: string; publishedAfter?: Date; publishedBefore?: Date; } export interface FolderFilters { publicationId?: string; parentId?: string; search?: string; } export interface TagFilters { publicationId?: string; search?: string; minArticleCount?: number; } //# sourceMappingURL=types.d.ts.map