UNPKG

recoder-code

Version:

Complete AI-powered development platform with ML model training, plugin registry, real-time collaboration, monitoring, infrastructure automation, and enterprise deployment capabilities

115 lines (114 loc) 2.84 kB
/** * Package Entity * Represents a plugin package in the NPM-compatible registry */ import { User } from './User'; import { PackageVersion } from './PackageVersion'; import { Download } from './Download'; export declare enum PackageVisibility { PUBLIC = "public", PRIVATE = "private", ORGANIZATION = "organization" } export declare enum PackageStatus { ACTIVE = "active", DEPRECATED = "deprecated", UNPUBLISHED = "unpublished", SUSPENDED = "suspended" } export declare class Package { id: string; name: string; description?: string; homepage?: string; readme?: string; keywords?: string[]; license?: string; repository: { type: string; url: string; }; bugs: { url?: string; email?: string; }; author: { name: string; email?: string; url?: string; }; contributors: Array<{ name: string; email?: string; url?: string; }>; maintainers: Array<{ name: string; email?: string; }>; visibility: PackageVisibility; status: PackageStatus; latest_version?: string; download_count: number; version_count: number; rating: number; rating_count: number; npm_metadata: { dist_tags?: Record<string, string>; time?: Record<string, string>; users?: Record<string, boolean>; }; security_scan: { last_scan: string; vulnerabilities: number; status: 'clean' | 'warning' | 'critical'; details?: any[]; }; quality_metrics: { code_quality: number; documentation: number; testing: number; popularity: number; maintenance: number; }; tags: string[]; categories: string[]; featured: boolean; verified: boolean; organization?: string; stats: { weekly_downloads: number; monthly_downloads: number; yearly_downloads: number; dependents: number; dependencies: number; }; created_at: Date; updated_at: Date; last_published?: Date; deprecated_at?: Date; deprecation_message?: string; owner: User; owner_id: string; versions: PackageVersion[]; downloads: Download[]; get full_name(): string; get is_scoped(): boolean; get scope(): string | null; get package_name(): string; updateStats(downloads: { weekly: number; monthly: number; yearly: number; }): void; addDownload(): void; updateQuality(metrics: Partial<Package['quality_metrics']>): void; deprecate(message?: string): void; undeprecate(): void; suspend(): void; activate(): void; unpublish(): void; updateRating(newRating: number): void; toNpmFormat(): any; toApiFormat(): any; }