Files
Toju/toju-app/src/app/domains/plugins/domain/models/plugin-store.models.ts
Myx ecb1a4b3a0
All checks were successful
Queue Release Build / prepare (push) Successful in 2m28s
Deploy Web Apps / deploy (push) Successful in 7m58s
Queue Release Build / build-linux (push) Successful in 46m59s
Queue Release Build / build-windows (push) Successful in 26m2s
Queue Release Build / finalize (push) Successful in 23s
refactor: Remove hardcoded values
2026-05-17 18:18:14 +02:00

59 lines
1.4 KiB
TypeScript

import type { TojuPluginInstallScope, TojuPluginManifest } from '../../../../shared-kernel';
export type PluginStoreInstallState = 'installed' | 'notInstalled' | 'updateAvailable';
export type PluginStoreActionLabel = 'Install' | 'Install to Server' | 'Remove from Server' | 'Uninstall' | 'Update' | 'Update Server';
export interface PluginStoreEntry {
author?: string;
bundleUrl?: string;
description: string;
githubUrl?: string;
homepageUrl?: string;
id: string;
imageUrl?: string;
installUrl?: string;
readmeUrl?: string;
scope?: TojuPluginInstallScope;
sourceTitle?: string;
sourceUrl: string;
title: string;
version: string;
}
export interface PluginStoreSourceResult {
error?: string;
loadedAt?: number;
plugins: PluginStoreEntry[];
title?: string;
url: string;
}
export interface InstalledStorePlugin {
bundleUrl?: string;
cachedAt?: number;
cachedSourcePath?: string;
installedAt: number;
installUrl?: string;
manifest: TojuPluginManifest;
sourceUrl?: string;
updatedAt: number;
}
export interface PluginStoreReadme {
pluginId: string;
title: string;
url: string;
markdown: string;
}
export interface PersistedPluginStoreState {
installedPlugins: InstalledStorePlugin[];
schemaVersion?: number;
sourceUrls: string[];
}
export interface PersistedServerPluginInstallState {
schemaVersion?: number;
servers?: Record<string, InstalledStorePlugin[]>;
}