| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | import type { Plugin, PluginDeclaration, PluginManifestInMarket } from '../types'import type { GitHubUrlInfo } from '@/app/components/plugins/types'export const pluginManifestToCardPluginProps = (pluginManifest: PluginDeclaration): Plugin => {  return {    plugin_id: pluginManifest.plugin_unique_identifier,    type: pluginManifest.category,    category: pluginManifest.category,    name: pluginManifest.name,    version: pluginManifest.version,    latest_version: '',    latest_package_identifier: '',    org: pluginManifest.author,    label: pluginManifest.label,    brief: pluginManifest.description,    icon: pluginManifest.icon,    verified: pluginManifest.verified,    introduction: '',    repository: '',    install_count: 0,    endpoint: {      settings: [],    },    tags: [],  }}export const pluginManifestInMarketToPluginProps = (pluginManifest: PluginManifestInMarket): Plugin => {  return {    plugin_id: pluginManifest.plugin_unique_identifier,    type: pluginManifest.category,    category: pluginManifest.category,    name: pluginManifest.name,    version: pluginManifest.latest_version,    latest_version: pluginManifest.latest_version,    latest_package_identifier: '',    org: pluginManifest.org,    label: pluginManifest.label,    brief: pluginManifest.brief,    icon: pluginManifest.icon,    verified: true,    introduction: pluginManifest.introduction,    repository: '',    install_count: 0,    endpoint: {      settings: [],    },    tags: [],    badges: pluginManifest.badges,  }}export const parseGitHubUrl = (url: string): GitHubUrlInfo => {  const match = url.match(/^https:\/\/github\.com\/([^\/]+)\/([^\/]+)\/?$/)  return match ? { isValid: true, owner: match[1], repo: match[2] } : { isValid: false }}export const convertRepoToUrl = (repo: string) => {  return repo ? `https://github.com/${repo}` : ''}
 |