@lobehub/market-sdk 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,3 +1,5 @@
1
+ import { ConnectionType, PluginCompatibility, PluginManifest, SystemDependency } from '@lobehub/market-types';
2
+ export * from '@lobehub/market-types';
1
3
  import { z } from 'zod';
2
4
 
3
5
  /**
@@ -27,52 +29,12 @@ interface MarketSDKOptions {
27
29
  apiKey?: string;
28
30
  }
29
31
 
30
- declare const PluginTypeEnum: z.ZodEnum<["lobe", "openai", "mcp"]>;
31
- type PluginType = z.infer<typeof PluginTypeEnum>;
32
- declare const ConnectionTypeEnum: z.ZodEnum<["http", "stdio"]>;
33
- type ConnectionType = z.infer<typeof ConnectionTypeEnum>;
34
- declare const InstallationMethodEnum: z.ZodEnum<["npm", "docker", "git", "binaryUrl", "manual", "none"]>;
35
- type InstallationMethod = z.infer<typeof InstallationMethodEnum>;
36
- interface SystemDependency {
37
- name: string;
38
- type?: string;
39
- requiredVersion?: string;
40
- checkCommand?: string;
41
- installInstructions?: Record<string, string>;
42
- versionParsingRequired?: boolean;
43
- description?: string;
44
- }
45
- interface ConnectionConfig {
46
- type: string;
47
- command?: string;
48
- args?: string[];
49
- url?: string;
50
- }
51
- interface InstallationDetails {
52
- packageName?: string;
53
- repositoryUrlToClone?: string;
54
- setupSteps?: string[];
55
- }
56
- interface DeploymentOption {
57
- installationMethod: string;
58
- installationDetails?: InstallationDetails;
59
- connection: ConnectionConfig;
60
- isRecommended?: boolean;
61
- description?: string;
62
- systemDependencies?: SystemDependency[];
63
- }
64
- interface PluginCompatibility {
65
- platforms?: string[];
66
- minAppVersion?: string;
67
- maxAppVersion?: string;
68
- }
69
32
  interface PluginItem {
70
33
  identifier: string;
71
34
  version: string;
72
35
  isLatest: boolean;
73
36
  name: string;
74
37
  createdAt: string;
75
- type: PluginType;
76
38
  manifestUrl?: string;
77
39
  manifestVersion: string;
78
40
  icon?: string;
@@ -108,53 +70,6 @@ interface PluginListResponse {
108
70
  categories: string[];
109
71
  tags: string[];
110
72
  }
111
- interface PluginTool {
112
- name: string;
113
- description?: string;
114
- parameters?: Record<string, any>;
115
- }
116
- interface PluginResource {
117
- uri: string;
118
- name?: string;
119
- mimeType?: string;
120
- }
121
- interface PromptArgument {
122
- name: string;
123
- required?: boolean;
124
- description?: string;
125
- type?: string;
126
- }
127
- interface PluginPrompt {
128
- name: string;
129
- description: string;
130
- arguments?: PromptArgument[];
131
- }
132
- interface PluginManifest {
133
- id: string;
134
- name: string;
135
- version: string;
136
- description: string;
137
- category?: string;
138
- tags?: string[];
139
- author?: {
140
- name: string;
141
- url?: string;
142
- };
143
- homepage?: string;
144
- icon?: string;
145
- capabilities?: {
146
- tools?: boolean;
147
- prompts?: boolean;
148
- resources?: boolean;
149
- };
150
- deploymentOptions?: DeploymentOption[];
151
- compatibility?: PluginCompatibility;
152
- tools?: PluginTool[];
153
- resources?: PluginResource[];
154
- prompts?: PluginPrompt[];
155
- isValidated?: boolean;
156
- validatedAt?: string;
157
- }
158
73
  interface PluginQueryParams {
159
74
  page?: number;
160
75
  pageSize?: number;
@@ -596,6 +511,27 @@ interface Settings {
596
511
  createdAt: string;
597
512
  updatedAt: string;
598
513
  }
514
+ interface EnabledResources {
515
+ plugins: boolean;
516
+ agents: boolean;
517
+ }
518
+ interface AuthenticationConfig {
519
+ enabled: boolean;
520
+ schemes: string[];
521
+ }
522
+ interface DocumentationConfig {
523
+ apiUrl?: string;
524
+ policyUrl?: string;
525
+ termsOfServiceUrl?: string;
526
+ }
527
+ interface SettingsMap {
528
+ baseURL: string;
529
+ enabledResources: EnabledResources;
530
+ authentication: AuthenticationConfig;
531
+ documentation: DocumentationConfig;
532
+ locales: string[];
533
+ [key: string]: any;
534
+ }
599
535
  interface CreateSettingsParams {
600
536
  key: string;
601
537
  value: string;
@@ -610,18 +546,12 @@ interface UpdateSettingsParams {
610
546
  * 处理系统设置相关的管理功能
611
547
  */
612
548
  declare class SettingsService extends BaseSDK {
613
- /**
614
- * 创建系统设置管理服务实例
615
- * @param options SDK 配置选项
616
- * @param sharedHeaders 共享的 headers 对象(可选)
617
- */
618
- constructor(options?: MarketSDKOptions, sharedHeaders?: Record<string, string>);
619
549
  /**
620
550
  * 获取设置列表
621
551
  * @param params 查询参数
622
- * @returns 设置列表响应
552
+ * @returns 设置键值对对象
623
553
  */
624
- getSettings(params?: AdminListQueryParams): Promise<AdminListResponse<Settings>>;
554
+ getSettings(): Promise<SettingsMap>;
625
555
  /**
626
556
  * 获取单个设置
627
557
  * @param key 设置键名
@@ -742,4 +672,4 @@ declare class MarketAdmin extends BaseSDK {
742
672
  constructor(options?: MarketSDKOptions);
743
673
  }
744
674
 
745
- export { type AdminListQueryParams, type AdminListResponse, type AdminPluginParams, type ConnectionConfig, type ConnectionType, ConnectionTypeEnum, type DeploymentOption, type DiscoveryDocument, type InstallationDetails, type InstallationMethod, InstallationMethodEnum, MarketAdmin, MarketSDK, type MarketSDKOptions, type Plugin, type PluginCompatibility, type PluginItem, type PluginListResponse, type PluginManifest, type PluginPrompt, type PluginQueryParams, type PluginResource, type PluginTool, type PluginType, PluginTypeEnum, type PluginUpdateParams, type PluginVersion, type PluginVersionCreateParams, type PluginVersionUpdateParams, type PromptArgument, type ReviewStatus, ReviewStatusEnumSchema, StatusEnumSchema, type SystemDependency, VisibilityEnumSchema };
675
+ export { type AdminListQueryParams, type AdminListResponse, type AdminPluginParams, type DiscoveryDocument, MarketAdmin, MarketSDK, type MarketSDKOptions, type Plugin, type PluginItem, type PluginListResponse, type PluginQueryParams, type PluginUpdateParams, type PluginVersion, type PluginVersionCreateParams, type PluginVersionUpdateParams, type ReviewStatus, ReviewStatusEnumSchema, StatusEnumSchema, VisibilityEnumSchema };
package/dist/index.mjs CHANGED
@@ -227,7 +227,7 @@ var PluginService = class extends BaseSDK {
227
227
  async getPlugins(params = {}) {
228
228
  log5("Getting plugins with params: %O", params);
229
229
  const queryString = this.buildQueryString(params);
230
- const url = `/admin/plugins${queryString ? `?${queryString}` : ""}`;
230
+ const url = `/admin/plugins${queryString}`;
231
231
  const result = await this.request(url);
232
232
  log5("Retrieved %d plugins", result.data.length);
233
233
  return result;
@@ -556,27 +556,13 @@ var SystemDependencyService = class extends BaseSDK {
556
556
  import debug7 from "debug";
557
557
  var log7 = debug7("lobe-market-sdk:admin:settings");
558
558
  var SettingsService = class extends BaseSDK {
559
- /**
560
- * 创建系统设置管理服务实例
561
- * @param options SDK 配置选项
562
- * @param sharedHeaders 共享的 headers 对象(可选)
563
- */
564
- constructor(options = {}, sharedHeaders) {
565
- super(options, sharedHeaders);
566
- log7("SettingsService instance created");
567
- }
568
559
  /**
569
560
  * 获取设置列表
570
561
  * @param params 查询参数
571
- * @returns 设置列表响应
562
+ * @returns 设置键值对对象
572
563
  */
573
- async getSettings(params = {}) {
574
- log7("Getting settings with params: %O", params);
575
- const queryString = this.buildQueryString(params);
576
- const url = `/admin/settings${queryString ? `?${queryString}` : ""}`;
577
- const result = await this.request(url);
578
- log7("Retrieved %d settings", result.data.length);
579
- return result;
564
+ async getSettings() {
565
+ return await this.request("/admin/settings");
580
566
  }
581
567
  /**
582
568
  * 获取单个设置
@@ -716,30 +702,17 @@ var MarketAdmin = class extends BaseSDK {
716
702
  }
717
703
  };
718
704
 
719
- // src/types/plugins.ts
705
+ // src/types/admin.ts
720
706
  import { z } from "zod";
721
- var PluginTypeEnum = z.enum(["lobe", "openai", "mcp"]);
722
- var ConnectionTypeEnum = z.enum(["http", "stdio"]);
723
- var InstallationMethodEnum = z.enum([
724
- "npm",
725
- "docker",
726
- "git",
727
- "binaryUrl",
728
- "manual",
729
- "none"
730
- ]);
707
+ var VisibilityEnumSchema = z.enum(["public", "private", "internal"]);
708
+ var StatusEnumSchema = z.enum(["published", "unpublished", "archived", "deprecated"]);
709
+ var ReviewStatusEnumSchema = z.enum(["published", "draft", "review", "rejected"]);
731
710
 
732
- // src/types/admin.ts
733
- import { z as z2 } from "zod";
734
- var VisibilityEnumSchema = z2.enum(["public", "private", "internal"]);
735
- var StatusEnumSchema = z2.enum(["published", "unpublished", "archived", "deprecated"]);
736
- var ReviewStatusEnumSchema = z2.enum(["published", "draft", "review", "rejected"]);
711
+ // src/index.ts
712
+ export * from "@lobehub/market-types";
737
713
  export {
738
- ConnectionTypeEnum,
739
- InstallationMethodEnum,
740
714
  MarketAdmin,
741
715
  MarketSDK,
742
- PluginTypeEnum,
743
716
  ReviewStatusEnumSchema,
744
717
  StatusEnumSchema,
745
718
  VisibilityEnumSchema
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/market/market-sdk.ts","../src/core/BaseSDK.ts","../src/market/services/PluginsService.ts","../src/market/services/DiscoveryService.ts","../src/admin/MarketAdmin.ts","../src/admin/services/PluginService.ts","../src/admin/services/SystemDependencyService.ts","../src/admin/services/SettingsService.ts","../src/admin/services/ReviewService.ts","../src/types/plugins.ts","../src/types/admin.ts"],"sourcesContent":["import debug from 'debug';\n\nimport { BaseSDK } from '../core/BaseSDK';\nimport { DiscoveryService, PluginsService } from './services';\nimport { DiscoveryDocument, MarketSDKOptions } from '../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk');\n\n/**\n * LobeHub Market SDK Client\n * 采用组合模式组合各个领域服务\n */\nexport class MarketSDK extends BaseSDK {\n /**\n * 插件服务\n */\n readonly plugins: PluginsService;\n\n /**\n * 发现服务\n */\n private readonly discovery: DiscoveryService;\n\n /**\n * Create MarketSDK instance\n * @param options SDK configuration options\n */\n constructor(options: MarketSDKOptions = {}) {\n super(options);\n log('MarketSDK instance created');\n\n // Initialize domain services with shared headers\n this.plugins = new PluginsService(options, this.headers);\n this.discovery = new DiscoveryService(options, this.headers);\n }\n\n /**\n * Get market service discovery document\n * @returns Service discovery document\n */\n async getDiscoveryDocument(): Promise<DiscoveryDocument> {\n return this.discovery.getDiscoveryDocument();\n }\n}\n","import debug from 'debug';\n\nimport { MarketSDKOptions } from '../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:core');\n\n/**\n * 基础 SDK 类\n * 提供共享的请求逻辑和认证功能\n */\nexport class BaseSDK {\n protected baseUrl: string;\n protected defaultLocale: string;\n protected headers: Record<string, string>;\n\n /**\n * 创建基础 SDK 实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n this.baseUrl =\n options.baseURL || process.env.MARKET_BASE_URL || 'https://market.lobehub.com/api';\n this.defaultLocale = options.defaultLocale || 'en-US';\n\n const apiKey = options.apiKey || process.env.MARKET_API_KEY;\n // 使用共享的 headers 或创建新的\n if (sharedHeaders) {\n this.headers = sharedHeaders;\n log('Using shared headers object');\n } else {\n this.headers = {\n 'Content-Type': 'application/json',\n ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n };\n log('Created new headers object');\n }\n\n log('BaseSDK instance created: %O', {\n baseUrl: this.baseUrl,\n defaultLocale: this.defaultLocale,\n });\n }\n\n /**\n * 发送请求并处理响应\n * @param url 请求 URL\n * @param options fetch 选项\n * @returns 响应数据\n */\n protected async request<T>(url: string, options: RequestInit = {}): Promise<T> {\n log('Sending request: %s', `${this.baseUrl}${url}`);\n\n const response = await fetch(`${this.baseUrl}${url}`, {\n ...options,\n headers: {\n ...this.headers,\n ...options.headers,\n },\n });\n\n if (!response.ok) {\n const errorMsg = `Request failed: ${response.status} ${response.statusText}`;\n log('Request error: %s', errorMsg);\n throw new Error(errorMsg);\n }\n\n log('Request successful: %s', url);\n return response.json() as Promise<T>;\n }\n\n /**\n * 构建查询字符串\n * @param params 查询参数\n * @returns 查询字符串\n */\n protected buildQueryString(params: Record<string, any>): string {\n const query = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)\n .join('&');\n\n return query ? `?${query}` : '';\n }\n\n /**\n * 设置认证令牌\n * @param token 认证令牌\n */\n setAuthToken(token: string): void {\n log('Setting authentication token');\n this.headers.Authorization = `Bearer ${token}`;\n }\n\n /**\n * 清除认证令牌\n */\n clearAuthToken(): void {\n log('Clearing authentication token');\n delete this.headers.Authorization;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '../../core/BaseSDK';\nimport { MarketSDKOptions, PluginListResponse, PluginManifest, PluginQueryParams } from '../../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:plugins');\n\n/**\n * 插件服务\n * 处理插件相关功能\n */\nexport class PluginsService extends BaseSDK {\n /**\n * 创建插件服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('PluginsService instance created');\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPluginList(params: PluginQueryParams = {}): Promise<PluginListResponse> {\n const locale = params.locale || this.defaultLocale;\n const queryParams = { ...params, locale };\n const queryString = this.buildQueryString(queryParams);\n\n log('Getting plugin list: %O', queryParams);\n\n const result = await this.request<PluginListResponse>(`/v1/plugins${queryString}`);\n log('Retrieved %d plugins', result.items.length);\n return result;\n }\n\n /**\n * 获取插件清单\n * @param identifier 插件标识符\n * @param locale 语言\n * @param version 版本\n * @returns 插件清单\n */\n async getPluginManifest(\n identifier: string,\n locale?: string,\n version?: string,\n ): Promise<PluginManifest> {\n log('Getting plugin manifest: %O', { identifier, version, locale });\n const localeParam = locale || this.defaultLocale;\n const params: Record<string, string> = { locale: localeParam };\n if (version) {\n params.version = version;\n }\n const queryString = this.buildQueryString(params);\n\n const manifest = await this.request<PluginManifest>(\n `/v1/plugins/${identifier}/manifest${queryString}`,\n );\n log('Plugin manifest successfully retrieved: %s', identifier);\n return manifest;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '../../core/BaseSDK';\nimport { DiscoveryDocument, MarketSDKOptions } from '../../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:discovery');\n\n/**\n * 发现服务\n * 处理服务发现功能\n */\nexport class DiscoveryService extends BaseSDK {\n private discoveryDoc?: DiscoveryDocument;\n\n /**\n * 创建发现服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('DiscoveryService instance created');\n }\n\n /**\n * 获取市场服务发现文档\n * @returns 服务发现文档\n */\n async getDiscoveryDocument(): Promise<DiscoveryDocument> {\n log('Fetching discovery document');\n if (this.discoveryDoc) {\n log('Returning cached discovery document');\n return this.discoveryDoc;\n }\n\n this.discoveryDoc = await this.request<DiscoveryDocument>('/market/.well-known/discovery');\n log('Discovery document successfully fetched');\n return this.discoveryDoc;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { MarketSDKOptions } from '@/types';\n\nimport { PluginService, ReviewService, SettingsService, SystemDependencyService } from './services';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin');\n\n/**\n * LobeHub 市场管理 SDK 客户端\n * 专门用于管理市场的管理功能\n */\nexport class MarketAdmin extends BaseSDK {\n /**\n * 插件管理服务\n */\n readonly plugins: PluginService;\n\n /**\n * 审核管理服务\n */\n readonly reviews: ReviewService;\n\n /**\n * 系统设置管理服务\n */\n readonly settings: SettingsService;\n\n /**\n * 系统依赖管理服务\n */\n readonly dependencies: SystemDependencyService;\n\n /**\n * 创建 MarketAdmin 实例\n * @param options SDK 配置选项\n */\n constructor(options: MarketSDKOptions = {}) {\n const apiKey = options.apiKey || process.env.MARKET_ADMIN_API_KEY;\n\n super({ ...options, apiKey });\n log('MarketAdmin instance created');\n\n // 初始化服务\n this.plugins = new PluginService(options, this.headers);\n this.reviews = new ReviewService(options, this.headers);\n this.settings = new SettingsService(options, this.headers);\n this.dependencies = new SystemDependencyService(options, this.headers);\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport {\n AdminListQueryParams,\n AdminListResponse,\n MarketSDKOptions,\n Plugin,\n PluginManifest,\n PluginUpdateParams,\n PluginVersion,\n PluginVersionCreateParams,\n PluginVersionUpdateParams,\n} from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:plugin');\n\n/**\n * 插件管理服务\n * 处理插件相关的管理功能\n */\nexport class PluginService extends BaseSDK {\n /**\n * 创建插件管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('PluginService instance created');\n }\n\n /**\n * 导入插件清单(需要管理员权限)\n * @param manifests 插件清单数组\n * @param ownerId 所有者 ID\n * @returns 导入结果\n */\n async importManifests(\n manifests: PluginManifest[],\n ownerId?: number,\n ): Promise<{ success: number; failed: number }> {\n log(`Starting batch import of ${manifests.length} manifests`);\n if (ownerId) {\n log(`Using specified owner ID: ${ownerId}`);\n }\n\n const response = await this.request<{ success: number; failed: number }>(\n '/admin/plugins/import',\n {\n method: 'POST',\n body: JSON.stringify({\n manifests,\n ownerId,\n }),\n },\n );\n\n log(`Batch import completed: ${response.success} succeeded, ${response.failed} failed`);\n return response;\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPlugins(params: AdminListQueryParams = {}): Promise<AdminListResponse<Plugin>> {\n log('Getting plugins with params: %O', params);\n\n const queryString = this.buildQueryString(params);\n const url = `/admin/plugins${queryString ? `?${queryString}` : ''}`;\n\n const result = await this.request<AdminListResponse<Plugin>>(url);\n\n log('Retrieved %d plugins', result.data.length);\n return result;\n }\n\n /**\n * 获取单个插件\n * @param id 插件 ID\n * @returns 插件详情\n */\n async getPlugin(id: number | string): Promise<Plugin & { versions: PluginVersion[] }> {\n log('Getting plugin details (admin): %d', id);\n\n const result = await this.request<Plugin & { versions: PluginVersion[] }>(\n `/admin/plugins/${id}`,\n );\n log('Retrieved plugin with %d versions', result.versions.length);\n return result;\n }\n\n /**\n * 更新插件信息\n * @param id 插件 ID\n * @param data 插件更新数据\n * @returns 更新后的插件\n */\n async updatePlugin(id: number, data: PluginUpdateParams): Promise<Plugin> {\n log('Updating plugin: %d, data: %O', id, data);\n\n const result = await this.request<Plugin>(`/admin/plugins/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Plugin updated successfully');\n return result;\n }\n\n /**\n * 更新插件状态\n * @param id 插件 ID\n * @param status 新状态\n * @returns 成功响应\n */\n async updatePluginStatus(\n id: number,\n status: 'published' | 'draft' | 'review' | 'rejected',\n ): Promise<{ success: boolean; message: string }> {\n log('Updating plugin status: %d to %s', id, status);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}/status`,\n {\n method: 'PATCH',\n body: JSON.stringify({ status }),\n },\n );\n log('Plugin status updated successfully');\n return result;\n }\n\n /**\n * 删除插件\n * @param id 插件 ID\n * @returns 成功响应\n */\n async deletePlugin(id: number): Promise<{ success: boolean; message: string }> {\n log('Deleting plugin: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}`,\n { method: 'DELETE' },\n );\n log('Plugin deleted successfully');\n return result;\n }\n\n /**\n * 获取插件版本列表\n * @param pluginId 插件 ID\n * @returns 插件版本列表\n */\n async getPluginVersions(pluginId: number): Promise<PluginVersion[]> {\n log('Getting plugin versions: pluginId=%d', pluginId);\n\n const result = await this.request<PluginVersion[]>(`/admin/plugins/${pluginId}/versions`);\n\n log('Retrieved %d versions', result.length);\n return result;\n }\n\n /**\n * 获取单个插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 插件版本\n */\n async getPluginVersion(pluginId: number, versionId: number): Promise<PluginVersion> {\n log('Getting version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n );\n log('Version details retrieved');\n return result;\n }\n\n /**\n * 创建插件版本\n * @param pluginId 插件 ID\n * @param data 版本创建数据\n * @returns 创建的版本\n */\n async createPluginVersion(\n pluginId: number,\n data: PluginVersionCreateParams,\n ): Promise<PluginVersion> {\n log('Creating new version: pluginId=%d', pluginId);\n\n const result = await this.request<PluginVersion>(`/admin/plugins/${pluginId}/versions`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('Plugin version created successfully');\n return result;\n }\n\n /**\n * 更新插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @param data 版本更新数据\n * @returns 更新后的版本\n */\n async updatePluginVersion(\n pluginId: number,\n versionId: number,\n data: PluginVersionUpdateParams,\n ): Promise<PluginVersion> {\n log('Updating version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('Plugin version updated successfully');\n return result;\n }\n\n /**\n * 删除插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 成功响应\n */\n async deletePluginVersion(\n pluginId: number,\n versionId: number,\n ): Promise<{ success: boolean; message: string }> {\n log('Deleting version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n { method: 'DELETE' },\n );\n log('Plugin version deleted successfully');\n return result;\n }\n\n /**\n * 设置插件版本为最新版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 成功响应\n */\n async setPluginVersionAsLatest(\n pluginId: number,\n versionId: number,\n ): Promise<{ success: boolean; message: string }> {\n log('Setting version as latest: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${pluginId}/versions/${versionId}/latest`,\n { method: 'POST' },\n );\n log('Version set as latest');\n return result;\n }\n\n /**\n * 更新插件可见性\n * @param id 插件 ID\n * @param visibility 新的可见性状态\n * @returns 成功响应\n */\n async updatePluginVisibility(\n id: number,\n visibility: 'public' | 'private' | 'unlisted',\n ): Promise<{ success: boolean; message: string }> {\n log('Updating plugin visibility: %d to %s', id, visibility);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}/visibility`,\n {\n method: 'PATCH',\n body: JSON.stringify({ visibility }),\n },\n );\n log('Plugin visibility updated successfully');\n return result;\n }\n\n /**\n * 批量更新插件状态\n * @param ids 插件 ID 数组\n * @param status 新的状态\n * @returns 成功响应\n */\n async batchUpdatePluginStatus(\n ids: number[],\n status: 'published' | 'draft' | 'review' | 'rejected',\n ): Promise<{ success: boolean; message: string }> {\n log('Batch updating plugin status: %O to %s', ids, status);\n\n const result = await this.request<{ success: boolean; message: string }>(\n '/admin/plugins/batch/status',\n {\n method: 'PATCH',\n body: JSON.stringify({ ids, status }),\n },\n );\n log('Batch plugin status update completed');\n return result;\n }\n\n /**\n * 批量删除插件\n * @param ids 插件 ID 数组\n * @returns 成功响应\n */\n async batchDeletePlugins(ids: number[]): Promise<{ success: boolean; message: string }> {\n log('Batch deleting plugins: %O', ids);\n\n const result = await this.request<{ success: boolean; message: string }>(\n '/admin/plugins/batch/delete',\n {\n method: 'DELETE',\n body: JSON.stringify({ ids }),\n },\n );\n log('Batch plugin deletion completed');\n return result;\n }\n\n /**\n * 获取插件版本详情\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 版本详情\n */\n async getPluginVersionDetails(\n pluginId: number,\n versionId: number,\n ): Promise<PluginVersion & { deploymentOptions: any }> {\n log(\n 'Getting version details with deployment options: pluginId=%d, versionId=%d',\n pluginId,\n versionId,\n );\n\n const result = await this.request<PluginVersion & { deploymentOptions: any }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n );\n log('Version details with deployment options retrieved');\n return result;\n }\n\n /**\n * 更新插件版本信息\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @param data 版本更新数据\n * @returns 更新后的版本\n */\n async updatePluginVersionDetails(\n pluginId: number,\n versionId: number,\n data: {\n author?: string;\n authorUrl?: string;\n name?: string;\n description?: string;\n tags?: string[];\n icon?: string;\n category?: string;\n capabilitiesTools?: boolean;\n capabilitiesPrompts?: boolean;\n capabilitiesResources?: boolean;\n tools?: any;\n resources?: any;\n prompts?: any;\n isValidated?: boolean;\n meta?: Record<string, any>;\n },\n ): Promise<PluginVersion> {\n log('Updating version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('Version details updated successfully');\n return result;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { MarketSDKOptions, SystemDependency } from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:dependency');\n\n/**\n * 系统依赖管理服务\n */\nexport class SystemDependencyService extends BaseSDK {\n /**\n * 创建系统依赖管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('SystemDependencyService instance created');\n }\n\n /**\n * 获取所有系统依赖项\n * @returns 系统依赖项列表\n */\n async getSystemDependencies(): Promise<SystemDependency[]> {\n log('Getting all system dependencies');\n\n const result = await this.request<SystemDependency[]>(`/admin/plugins/dependencies`);\n log('Retrieved %d system dependencies', result.length);\n return result;\n }\n\n /**\n * 获取特定系统依赖项\n * @param id 依赖项 ID\n * @returns 系统依赖项\n */\n async getSystemDependency(id: number): Promise<SystemDependency> {\n log('Getting system dependency details: %d', id);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies/${id}`);\n log('System dependency details retrieved');\n return result;\n }\n\n /**\n * 创建系统依赖项\n * @param data 依赖项创建数据\n * @returns 创建的依赖项\n */\n async createSystemDependency(data: Omit<SystemDependency, 'id'>): Promise<SystemDependency> {\n log('Creating system dependency: %O', data);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('System dependency created successfully');\n return result;\n }\n\n /**\n * 更新系统依赖项\n * @param id 依赖项 ID\n * @param data 依赖项更新数据\n * @returns 更新后的依赖项\n */\n async updateSystemDependency(\n id: number,\n data: Partial<SystemDependency>,\n ): Promise<SystemDependency> {\n log('Updating system dependency: %d, data: %O', id, data);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('System dependency updated successfully');\n return result;\n }\n\n /**\n * 删除系统依赖项\n * @param id 依赖项 ID\n * @returns 成功响应\n */\n async deleteSystemDependency(id: number): Promise<{ success: boolean; message: string }> {\n log('Deleting system dependency: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/dependencies/${id}`,\n { method: 'DELETE' },\n );\n log('System dependency deleted successfully');\n return result;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { AdminListQueryParams, AdminListResponse, MarketSDKOptions } from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:settings');\n\nexport interface Settings {\n id: number;\n key: string;\n value: string;\n description?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateSettingsParams {\n key: string;\n value: string;\n description?: string;\n}\n\nexport interface UpdateSettingsParams {\n value: string;\n description?: string;\n}\n\n/**\n * 系统设置管理服务\n * 处理系统设置相关的管理功能\n */\nexport class SettingsService extends BaseSDK {\n /**\n * 创建系统设置管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('SettingsService instance created');\n }\n\n /**\n * 获取设置列表\n * @param params 查询参数\n * @returns 设置列表响应\n */\n async getSettings(params: AdminListQueryParams = {}): Promise<AdminListResponse<Settings>> {\n log('Getting settings with params: %O', params);\n\n const queryString = this.buildQueryString(params);\n const url = `/admin/settings${queryString ? `?${queryString}` : ''}`;\n\n const result = await this.request<AdminListResponse<Settings>>(url);\n\n log('Retrieved %d settings', result.data.length);\n return result;\n }\n\n /**\n * 获取单个设置\n * @param key 设置键名\n * @returns 设置详情\n */\n async getSettingByKey(key: string): Promise<{ data: Settings }> {\n log('Getting setting: %s', key);\n\n const result = await this.request<{ data: Settings }>(`/admin/settings/${key}`);\n log('Setting retrieved');\n return result;\n }\n\n /**\n * 创建设置\n * @param data 设置数据\n * @returns 创建的设置\n */\n async createSetting(data: CreateSettingsParams): Promise<{ data: Settings }> {\n log('Creating setting: %O', data);\n\n const result = await this.request<{ data: Settings }>('/admin/settings', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('Setting created successfully');\n return result;\n }\n\n /**\n * 更新设置\n * @param key 设置键名\n * @param data 更新数据\n * @returns 更新后的设置\n */\n async updateSetting(key: string, data: UpdateSettingsParams): Promise<{ data: Settings }> {\n log('Updating setting: %s, data: %O', key, data);\n\n const result = await this.request<{ data: Settings }>(`/admin/settings/${key}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Setting updated successfully');\n return result;\n }\n\n /**\n * 删除设置\n * @param key 设置键名\n * @returns 删除结果\n */\n async deleteSetting(key: string): Promise<{ message: string }> {\n log('Deleting setting: %s', key);\n\n const result = await this.request<{ message: string }>(`/admin/settings/${key}`, {\n method: 'DELETE',\n });\n log('Setting deleted successfully');\n return result;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { AdminListQueryParams, AdminListResponse, MarketSDKOptions, ReviewStatus } from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:review');\n\nexport interface Review {\n id: number;\n pluginId: number;\n status: ReviewStatus;\n comment?: string;\n reviewerId?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface PluginReviewWithRelations extends Review {\n plugin?: any;\n version?: any;\n}\n\nexport interface GetReviewsParams {\n status?: ReviewStatus;\n pluginId?: number;\n reviewerId?: number;\n limit?: number;\n offset?: number;\n orderBy?: string;\n order?: 'asc' | 'desc';\n}\n\nexport interface GetReviewsResponse {\n data: Review[];\n meta: {\n total: number;\n limit: number;\n offset: number;\n };\n}\n\nexport interface UpdateReviewParams {\n status: ReviewStatus;\n comment?: string;\n}\n\n/**\n * 审核管理服务\n * 处理插件审核相关的管理功能\n */\nexport class ReviewService extends BaseSDK {\n /**\n * 创建审核管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('ReviewService instance created');\n }\n\n /**\n * 获取审核列表\n * @param params 查询参数\n * @returns 审核列表响应\n */\n async getReviews(\n params: AdminListQueryParams = {},\n ): Promise<AdminListResponse<PluginReviewWithRelations>> {\n log('Getting reviews with params: %O', params);\n\n const queryString = this.buildQueryString(params);\n const url = `/admin/reviews${queryString ? `?${queryString}` : ''}`;\n\n const result = await this.request<AdminListResponse<PluginReviewWithRelations>>(url);\n\n log('Retrieved %d reviews', result.data.length);\n return result;\n }\n\n /**\n * 获取审核详情\n * @param id 审核 ID\n * @returns 审核详情\n */\n async getReviewById(id: number): Promise<Review> {\n log('Getting review details: %d', id);\n\n const result = await this.request<Review>(`/admin/reviews/${id}`);\n log('Review details retrieved');\n return result;\n }\n\n /**\n * 更新审核状态\n * @param id 审核 ID\n * @param data 更新数据\n * @returns 更新后的审核信息\n */\n async updateReview(id: number, data: UpdateReviewParams): Promise<Review> {\n log('Updating review: %d, data: %O', id, data);\n\n const result = await this.request<Review>(`/admin/reviews/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Review updated successfully');\n return result;\n }\n\n /**\n * 获取插件的审核历史\n * @param pluginId 插件 ID\n * @returns 审核历史列表\n */\n async getPluginReviews(pluginId: number): Promise<{ data: Review[] }> {\n log('Getting plugin reviews: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: Review[] }>(`/admin/reviews/plugin/${pluginId}`);\n log('Retrieved %d reviews for plugin', result.data.length);\n return result;\n }\n}\n","import { z } from 'zod';\n\n// 插件类型\nexport const PluginTypeEnum = z.enum(['lobe', 'openai', 'mcp']);\nexport type PluginType = z.infer<typeof PluginTypeEnum>;\n\n// 连接类型\nexport const ConnectionTypeEnum = z.enum(['http', 'stdio']);\nexport type ConnectionType = z.infer<typeof ConnectionTypeEnum>;\n\n// 安装方法\nexport const InstallationMethodEnum = z.enum([\n 'npm',\n 'docker',\n 'git',\n 'binaryUrl',\n 'manual',\n 'none',\n]);\nexport type InstallationMethod = z.infer<typeof InstallationMethodEnum>;\n\n// 系统依赖项\nexport interface SystemDependency {\n name: string;\n type?: string;\n requiredVersion?: string;\n checkCommand?: string;\n installInstructions?: Record<string, string>;\n versionParsingRequired?: boolean;\n description?: string;\n}\n\n// 连接配置\nexport interface ConnectionConfig {\n type: string;\n command?: string;\n args?: string[];\n url?: string;\n}\n\nexport interface InstallationDetails {\n packageName?: string;\n repositoryUrlToClone?: string;\n setupSteps?: string[];\n}\n\n// 部署选项\nexport interface DeploymentOption {\n installationMethod: string;\n installationDetails?: InstallationDetails;\n connection: ConnectionConfig;\n isRecommended?: boolean;\n description?: string;\n systemDependencies?: SystemDependency[];\n}\n\n// 兼容性信息\nexport interface PluginCompatibility {\n platforms?: string[];\n minAppVersion?: string;\n maxAppVersion?: string;\n}\n\n// 插件项\nexport interface PluginItem {\n identifier: string;\n version: string;\n isLatest: boolean;\n name: string;\n createdAt: string;\n type: PluginType;\n manifestUrl?: string;\n manifestVersion: string;\n icon?: string;\n author?: string;\n homepage?: string;\n category?: string;\n connectionType?: ConnectionType;\n compatibility?: PluginCompatibility;\n capabilities: {\n tools: boolean;\n prompts: boolean;\n resources: boolean;\n };\n description: string;\n tags?: string[];\n authRequirement?: string;\n isInstallable?: boolean;\n toolsCount?: number;\n promptsCount?: number;\n resourcesCount?: number;\n isValidated?: boolean;\n installCount?: number;\n ratingAverage?: number;\n ratingCount?: number;\n commentCount?: number;\n}\n\n// 插件列表响应\nexport interface PluginListResponse {\n items: PluginItem[];\n totalCount: number;\n currentPage: number;\n pageSize: number;\n totalPages: number;\n categories: string[];\n tags: string[];\n}\n\n// 工具项定义\nexport interface PluginTool {\n name: string;\n description?: string;\n parameters?: Record<string, any>;\n}\n\n// 资源项定义\nexport interface PluginResource {\n uri: string;\n name?: string;\n mimeType?: string;\n}\n\n// 提示词参数定义\nexport interface PromptArgument {\n name: string;\n required?: boolean;\n description?: string;\n type?: string;\n}\n\n// 提示词项定义\nexport interface PluginPrompt {\n name: string;\n description: string;\n arguments?: PromptArgument[];\n}\n\n// 插件清单\nexport interface PluginManifest {\n id: string;\n name: string;\n version: string;\n description: string;\n category?: string;\n tags?: string[];\n author?: {\n name: string;\n url?: string;\n };\n homepage?: string;\n icon?: string;\n capabilities?: {\n tools?: boolean;\n prompts?: boolean;\n resources?: boolean;\n };\n deploymentOptions?: DeploymentOption[];\n compatibility?: PluginCompatibility;\n // 工具定义\n tools?: PluginTool[];\n // 资源定义\n resources?: PluginResource[];\n // 提示词定义\n prompts?: PluginPrompt[];\n // 验证信息\n isValidated?: boolean;\n validatedAt?: string;\n}\n\n// 插件查询参数\nexport interface PluginQueryParams {\n page?: number;\n pageSize?: number;\n category?: string;\n tags?: string;\n q?: string;\n sort?: 'installCount' | 'createdAt' | 'updatedAt' | 'ratingAverage';\n order?: 'asc' | 'desc';\n locale?: string;\n} ","import { z } from 'zod';\n\nimport { PluginManifest } from './plugins';\n\nexport const VisibilityEnumSchema = z.enum(['public', 'private', 'internal']);\n\nexport const StatusEnumSchema = z.enum(['published', 'unpublished', 'archived', 'deprecated']);\n\n/**\n * 通用列表查询参数\n */\nexport interface AdminListQueryParams {\n current?: number;\n pageSize?: number;\n sortField?: string;\n sortOrder?: 'ascend' | 'descend';\n keyword?: string;\n}\n\n/**\n * 通用列表响应格式\n */\nexport interface AdminListResponse<T> {\n data: T[];\n total: number;\n totalPages: number;\n current: number;\n pageSize: number;\n}\n\n/**\n * 插件数据库模型\n */\nexport interface Plugin {\n id: number;\n identifier: string;\n name: string;\n description: string;\n ownerId: number;\n type: string;\n visibility: 'public' | 'private' | 'unlisted';\n status: 'published' | 'draft' | 'review' | 'rejected';\n isFeatured: boolean;\n category: string;\n tags: string[];\n icon: string | null;\n author: string | null;\n homepage: string | null;\n manifestVersion: string;\n createdAt: string;\n updatedAt: string;\n meta: Record<string, any> | null;\n installCount: number;\n ratingAverage: number | null;\n ratingCount: number;\n reviewCount: number;\n}\n\n/**\n * 插件版本数据库模型\n */\nexport interface PluginVersion {\n id: number;\n pluginId: number;\n version: string;\n isLatest: boolean;\n manifestUrl: string | null;\n toolsCount: number;\n promptsCount: number;\n resourcesCount: number;\n isValidated: boolean;\n createdAt: string;\n updatedAt: string;\n manifest: PluginManifest;\n meta: Record<string, any> | null;\n}\n\nexport type ReviewStatus = 'pending' | 'approved' | 'rejected';\n\nexport const ReviewStatusEnumSchema = z.enum(['published', 'draft', 'review', 'rejected']);\n\n/**\n * 管理员获取插件列表参数\n */\nexport interface AdminPluginParams {\n status?: 'published' | 'draft' | 'review' | 'rejected';\n visibility?: 'public' | 'private' | 'unlisted';\n featured?: boolean;\n ownerId?: number;\n limit?: number;\n offset?: number;\n query?: string;\n orderBy?: 'createdAt' | 'updatedAt' | 'installCount' | 'ratingAverage';\n order?: 'asc' | 'desc';\n}\n\n/**\n * 创建插件版本参数\n */\nexport interface PluginVersionCreateParams {\n version: string;\n manifest: PluginManifest;\n manifestUrl?: string;\n isLatest?: boolean;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n/**\n * 更新插件版本参数\n */\nexport interface PluginVersionUpdateParams {\n manifestUrl?: string;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n/**\n * 更新插件信息参数\n */\nexport interface PluginUpdateParams {\n identifier?: string;\n visibility?: 'public' | 'private' | 'unlisted';\n status?: 'published' | 'draft' | 'review' | 'rejected';\n isFeatured?: boolean;\n tags?: string[];\n meta?: Record<string, any>;\n}\n"],"mappings":"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","names":["debug","debug","log","debug","debug","log","debug","log","debug","debug","debug","log","debug","debug","log","debug","debug","log","debug","debug","log","debug","log","debug","z"]}
1
+ {"version":3,"sources":["../src/market/market-sdk.ts","../src/core/BaseSDK.ts","../src/market/services/PluginsService.ts","../src/market/services/DiscoveryService.ts","../src/admin/MarketAdmin.ts","../src/admin/services/PluginService.ts","../src/admin/services/SystemDependencyService.ts","../src/admin/services/SettingsService.ts","../src/admin/services/ReviewService.ts","../src/types/admin.ts","../src/index.ts"],"sourcesContent":["import debug from 'debug';\n\nimport { BaseSDK } from '../core/BaseSDK';\nimport { DiscoveryService, PluginsService } from './services';\nimport { DiscoveryDocument, MarketSDKOptions } from '../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk');\n\n/**\n * LobeHub Market SDK Client\n * 采用组合模式组合各个领域服务\n */\nexport class MarketSDK extends BaseSDK {\n /**\n * 插件服务\n */\n readonly plugins: PluginsService;\n\n /**\n * 发现服务\n */\n private readonly discovery: DiscoveryService;\n\n /**\n * Create MarketSDK instance\n * @param options SDK configuration options\n */\n constructor(options: MarketSDKOptions = {}) {\n super(options);\n log('MarketSDK instance created');\n\n // Initialize domain services with shared headers\n this.plugins = new PluginsService(options, this.headers);\n this.discovery = new DiscoveryService(options, this.headers);\n }\n\n /**\n * Get market service discovery document\n * @returns Service discovery document\n */\n async getDiscoveryDocument(): Promise<DiscoveryDocument> {\n return this.discovery.getDiscoveryDocument();\n }\n}\n","import debug from 'debug';\n\nimport { MarketSDKOptions } from '../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:core');\n\n/**\n * 基础 SDK 类\n * 提供共享的请求逻辑和认证功能\n */\nexport class BaseSDK {\n protected baseUrl: string;\n protected defaultLocale: string;\n protected headers: Record<string, string>;\n\n /**\n * 创建基础 SDK 实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n this.baseUrl =\n options.baseURL || process.env.MARKET_BASE_URL || 'https://market.lobehub.com/api';\n this.defaultLocale = options.defaultLocale || 'en-US';\n\n const apiKey = options.apiKey || process.env.MARKET_API_KEY;\n // 使用共享的 headers 或创建新的\n if (sharedHeaders) {\n this.headers = sharedHeaders;\n log('Using shared headers object');\n } else {\n this.headers = {\n 'Content-Type': 'application/json',\n ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n };\n log('Created new headers object');\n }\n\n log('BaseSDK instance created: %O', {\n baseUrl: this.baseUrl,\n defaultLocale: this.defaultLocale,\n });\n }\n\n /**\n * 发送请求并处理响应\n * @param url 请求 URL\n * @param options fetch 选项\n * @returns 响应数据\n */\n protected async request<T>(url: string, options: RequestInit = {}): Promise<T> {\n log('Sending request: %s', `${this.baseUrl}${url}`);\n\n const response = await fetch(`${this.baseUrl}${url}`, {\n ...options,\n headers: {\n ...this.headers,\n ...options.headers,\n },\n });\n\n if (!response.ok) {\n const errorMsg = `Request failed: ${response.status} ${response.statusText}`;\n log('Request error: %s', errorMsg);\n throw new Error(errorMsg);\n }\n\n log('Request successful: %s', url);\n return response.json() as Promise<T>;\n }\n\n /**\n * 构建查询字符串\n * @param params 查询参数\n * @returns 查询字符串\n */\n protected buildQueryString(params: Record<string, any>): string {\n const query = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)\n .join('&');\n\n return query ? `?${query}` : '';\n }\n\n /**\n * 设置认证令牌\n * @param token 认证令牌\n */\n setAuthToken(token: string): void {\n log('Setting authentication token');\n this.headers.Authorization = `Bearer ${token}`;\n }\n\n /**\n * 清除认证令牌\n */\n clearAuthToken(): void {\n log('Clearing authentication token');\n delete this.headers.Authorization;\n }\n}\n","import { PluginManifest } from '@lobehub/market-types';\nimport debug from 'debug';\n\nimport { BaseSDK } from '../../core/BaseSDK';\nimport { MarketSDKOptions, PluginListResponse, PluginQueryParams } from '../../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:plugins');\n\n/**\n * 插件服务\n * 处理插件相关功能\n */\nexport class PluginsService extends BaseSDK {\n /**\n * 创建插件服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('PluginsService instance created');\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPluginList(params: PluginQueryParams = {}): Promise<PluginListResponse> {\n const locale = params.locale || this.defaultLocale;\n const queryParams = { ...params, locale };\n const queryString = this.buildQueryString(queryParams);\n\n log('Getting plugin list: %O', queryParams);\n\n const result = await this.request<PluginListResponse>(`/v1/plugins${queryString}`);\n log('Retrieved %d plugins', result.items.length);\n return result;\n }\n\n /**\n * 获取插件清单\n * @param identifier 插件标识符\n * @param locale 语言\n * @param version 版本\n * @returns 插件清单\n */\n async getPluginManifest(\n identifier: string,\n locale?: string,\n version?: string,\n ): Promise<PluginManifest> {\n log('Getting plugin manifest: %O', { identifier, version, locale });\n const localeParam = locale || this.defaultLocale;\n const params: Record<string, string> = { locale: localeParam };\n if (version) {\n params.version = version;\n }\n const queryString = this.buildQueryString(params);\n\n const manifest = await this.request<PluginManifest>(\n `/v1/plugins/${identifier}/manifest${queryString}`,\n );\n log('Plugin manifest successfully retrieved: %s', identifier);\n return manifest;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '../../core/BaseSDK';\nimport { DiscoveryDocument, MarketSDKOptions } from '../../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:discovery');\n\n/**\n * 发现服务\n * 处理服务发现功能\n */\nexport class DiscoveryService extends BaseSDK {\n private discoveryDoc?: DiscoveryDocument;\n\n /**\n * 创建发现服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('DiscoveryService instance created');\n }\n\n /**\n * 获取市场服务发现文档\n * @returns 服务发现文档\n */\n async getDiscoveryDocument(): Promise<DiscoveryDocument> {\n log('Fetching discovery document');\n if (this.discoveryDoc) {\n log('Returning cached discovery document');\n return this.discoveryDoc;\n }\n\n this.discoveryDoc = await this.request<DiscoveryDocument>('/market/.well-known/discovery');\n log('Discovery document successfully fetched');\n return this.discoveryDoc;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { MarketSDKOptions } from '@/types';\n\nimport { PluginService, ReviewService, SettingsService, SystemDependencyService } from './services';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin');\n\n/**\n * LobeHub 市场管理 SDK 客户端\n * 专门用于管理市场的管理功能\n */\nexport class MarketAdmin extends BaseSDK {\n /**\n * 插件管理服务\n */\n readonly plugins: PluginService;\n\n /**\n * 审核管理服务\n */\n readonly reviews: ReviewService;\n\n /**\n * 系统设置管理服务\n */\n readonly settings: SettingsService;\n\n /**\n * 系统依赖管理服务\n */\n readonly dependencies: SystemDependencyService;\n\n /**\n * 创建 MarketAdmin 实例\n * @param options SDK 配置选项\n */\n constructor(options: MarketSDKOptions = {}) {\n const apiKey = options.apiKey || process.env.MARKET_ADMIN_API_KEY;\n\n super({ ...options, apiKey });\n log('MarketAdmin instance created');\n\n // 初始化服务\n this.plugins = new PluginService(options, this.headers);\n this.reviews = new ReviewService(options, this.headers);\n this.settings = new SettingsService(options, this.headers);\n this.dependencies = new SystemDependencyService(options, this.headers);\n }\n}\n","import { PluginManifest } from '@lobehub/market-types';\nimport debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport {\n AdminListQueryParams,\n AdminListResponse,\n MarketSDKOptions,\n Plugin,\n PluginUpdateParams,\n PluginVersion,\n PluginVersionCreateParams,\n PluginVersionUpdateParams,\n} from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:plugin');\n\n/**\n * 插件管理服务\n * 处理插件相关的管理功能\n */\nexport class PluginService extends BaseSDK {\n /**\n * 创建插件管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('PluginService instance created');\n }\n\n /**\n * 导入插件清单(需要管理员权限)\n * @param manifests 插件清单数组\n * @param ownerId 所有者 ID\n * @returns 导入结果\n */\n async importManifests(\n manifests: PluginManifest[],\n ownerId?: number,\n ): Promise<{ success: number; failed: number }> {\n log(`Starting batch import of ${manifests.length} manifests`);\n if (ownerId) {\n log(`Using specified owner ID: ${ownerId}`);\n }\n\n const response = await this.request<{ success: number; failed: number }>(\n '/admin/plugins/import',\n {\n method: 'POST',\n body: JSON.stringify({\n manifests,\n ownerId,\n }),\n },\n );\n\n log(`Batch import completed: ${response.success} succeeded, ${response.failed} failed`);\n return response;\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPlugins(params: AdminListQueryParams = {}): Promise<AdminListResponse<Plugin>> {\n log('Getting plugins with params: %O', params);\n\n const queryString = this.buildQueryString(params);\n const url = `/admin/plugins${queryString}`;\n\n const result = await this.request<AdminListResponse<Plugin>>(url);\n\n log('Retrieved %d plugins', result.data.length);\n return result;\n }\n\n /**\n * 获取单个插件\n * @param id 插件 ID\n * @returns 插件详情\n */\n async getPlugin(id: number | string): Promise<Plugin & { versions: PluginVersion[] }> {\n log('Getting plugin details (admin): %d', id);\n\n const result = await this.request<Plugin & { versions: PluginVersion[] }>(\n `/admin/plugins/${id}`,\n );\n log('Retrieved plugin with %d versions', result.versions.length);\n return result;\n }\n\n /**\n * 更新插件信息\n * @param id 插件 ID\n * @param data 插件更新数据\n * @returns 更新后的插件\n */\n async updatePlugin(id: number, data: PluginUpdateParams): Promise<Plugin> {\n log('Updating plugin: %d, data: %O', id, data);\n\n const result = await this.request<Plugin>(`/admin/plugins/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Plugin updated successfully');\n return result;\n }\n\n /**\n * 更新插件状态\n * @param id 插件 ID\n * @param status 新状态\n * @returns 成功响应\n */\n async updatePluginStatus(\n id: number,\n status: 'published' | 'draft' | 'review' | 'rejected',\n ): Promise<{ success: boolean; message: string }> {\n log('Updating plugin status: %d to %s', id, status);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}/status`,\n {\n method: 'PATCH',\n body: JSON.stringify({ status }),\n },\n );\n log('Plugin status updated successfully');\n return result;\n }\n\n /**\n * 删除插件\n * @param id 插件 ID\n * @returns 成功响应\n */\n async deletePlugin(id: number): Promise<{ success: boolean; message: string }> {\n log('Deleting plugin: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}`,\n { method: 'DELETE' },\n );\n log('Plugin deleted successfully');\n return result;\n }\n\n /**\n * 获取插件版本列表\n * @param pluginId 插件 ID\n * @returns 插件版本列表\n */\n async getPluginVersions(pluginId: number): Promise<PluginVersion[]> {\n log('Getting plugin versions: pluginId=%d', pluginId);\n\n const result = await this.request<PluginVersion[]>(`/admin/plugins/${pluginId}/versions`);\n\n log('Retrieved %d versions', result.length);\n return result;\n }\n\n /**\n * 获取单个插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 插件版本\n */\n async getPluginVersion(pluginId: number, versionId: number): Promise<PluginVersion> {\n log('Getting version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n );\n log('Version details retrieved');\n return result;\n }\n\n /**\n * 创建插件版本\n * @param pluginId 插件 ID\n * @param data 版本创建数据\n * @returns 创建的版本\n */\n async createPluginVersion(\n pluginId: number,\n data: PluginVersionCreateParams,\n ): Promise<PluginVersion> {\n log('Creating new version: pluginId=%d', pluginId);\n\n const result = await this.request<PluginVersion>(`/admin/plugins/${pluginId}/versions`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('Plugin version created successfully');\n return result;\n }\n\n /**\n * 更新插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @param data 版本更新数据\n * @returns 更新后的版本\n */\n async updatePluginVersion(\n pluginId: number,\n versionId: number,\n data: PluginVersionUpdateParams,\n ): Promise<PluginVersion> {\n log('Updating version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('Plugin version updated successfully');\n return result;\n }\n\n /**\n * 删除插件版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 成功响应\n */\n async deletePluginVersion(\n pluginId: number,\n versionId: number,\n ): Promise<{ success: boolean; message: string }> {\n log('Deleting version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n { method: 'DELETE' },\n );\n log('Plugin version deleted successfully');\n return result;\n }\n\n /**\n * 设置插件版本为最新版本\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 成功响应\n */\n async setPluginVersionAsLatest(\n pluginId: number,\n versionId: number,\n ): Promise<{ success: boolean; message: string }> {\n log('Setting version as latest: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${pluginId}/versions/${versionId}/latest`,\n { method: 'POST' },\n );\n log('Version set as latest');\n return result;\n }\n\n /**\n * 更新插件可见性\n * @param id 插件 ID\n * @param visibility 新的可见性状态\n * @returns 成功响应\n */\n async updatePluginVisibility(\n id: number,\n visibility: 'public' | 'private' | 'unlisted',\n ): Promise<{ success: boolean; message: string }> {\n log('Updating plugin visibility: %d to %s', id, visibility);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}/visibility`,\n {\n method: 'PATCH',\n body: JSON.stringify({ visibility }),\n },\n );\n log('Plugin visibility updated successfully');\n return result;\n }\n\n /**\n * 批量更新插件状态\n * @param ids 插件 ID 数组\n * @param status 新的状态\n * @returns 成功响应\n */\n async batchUpdatePluginStatus(\n ids: number[],\n status: 'published' | 'draft' | 'review' | 'rejected',\n ): Promise<{ success: boolean; message: string }> {\n log('Batch updating plugin status: %O to %s', ids, status);\n\n const result = await this.request<{ success: boolean; message: string }>(\n '/admin/plugins/batch/status',\n {\n method: 'PATCH',\n body: JSON.stringify({ ids, status }),\n },\n );\n log('Batch plugin status update completed');\n return result;\n }\n\n /**\n * 批量删除插件\n * @param ids 插件 ID 数组\n * @returns 成功响应\n */\n async batchDeletePlugins(ids: number[]): Promise<{ success: boolean; message: string }> {\n log('Batch deleting plugins: %O', ids);\n\n const result = await this.request<{ success: boolean; message: string }>(\n '/admin/plugins/batch/delete',\n {\n method: 'DELETE',\n body: JSON.stringify({ ids }),\n },\n );\n log('Batch plugin deletion completed');\n return result;\n }\n\n /**\n * 获取插件版本详情\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @returns 版本详情\n */\n async getPluginVersionDetails(\n pluginId: number,\n versionId: number,\n ): Promise<PluginVersion & { deploymentOptions: any }> {\n log(\n 'Getting version details with deployment options: pluginId=%d, versionId=%d',\n pluginId,\n versionId,\n );\n\n const result = await this.request<PluginVersion & { deploymentOptions: any }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n );\n log('Version details with deployment options retrieved');\n return result;\n }\n\n /**\n * 更新插件版本信息\n * @param pluginId 插件 ID\n * @param versionId 版本 ID\n * @param data 版本更新数据\n * @returns 更新后的版本\n */\n async updatePluginVersionDetails(\n pluginId: number,\n versionId: number,\n data: {\n author?: string;\n authorUrl?: string;\n name?: string;\n description?: string;\n tags?: string[];\n icon?: string;\n category?: string;\n capabilitiesTools?: boolean;\n capabilitiesPrompts?: boolean;\n capabilitiesResources?: boolean;\n tools?: any;\n resources?: any;\n prompts?: any;\n isValidated?: boolean;\n meta?: Record<string, any>;\n },\n ): Promise<PluginVersion> {\n log('Updating version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<PluginVersion>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('Version details updated successfully');\n return result;\n }\n}\n","import { SystemDependency } from '@lobehub/market-types';\nimport debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { MarketSDKOptions } from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:dependency');\n\n/**\n * 系统依赖管理服务\n */\nexport class SystemDependencyService extends BaseSDK {\n /**\n * 创建系统依赖管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('SystemDependencyService instance created');\n }\n\n /**\n * 获取所有系统依赖项\n * @returns 系统依赖项列表\n */\n async getSystemDependencies(): Promise<SystemDependency[]> {\n log('Getting all system dependencies');\n\n const result = await this.request<SystemDependency[]>(`/admin/plugins/dependencies`);\n log('Retrieved %d system dependencies', result.length);\n return result;\n }\n\n /**\n * 获取特定系统依赖项\n * @param id 依赖项 ID\n * @returns 系统依赖项\n */\n async getSystemDependency(id: number): Promise<SystemDependency> {\n log('Getting system dependency details: %d', id);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies/${id}`);\n log('System dependency details retrieved');\n return result;\n }\n\n /**\n * 创建系统依赖项\n * @param data 依赖项创建数据\n * @returns 创建的依赖项\n */\n async createSystemDependency(data: Omit<SystemDependency, 'id'>): Promise<SystemDependency> {\n log('Creating system dependency: %O', data);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies`, {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('System dependency created successfully');\n return result;\n }\n\n /**\n * 更新系统依赖项\n * @param id 依赖项 ID\n * @param data 依赖项更新数据\n * @returns 更新后的依赖项\n */\n async updateSystemDependency(\n id: number,\n data: Partial<SystemDependency>,\n ): Promise<SystemDependency> {\n log('Updating system dependency: %d, data: %O', id, data);\n\n const result = await this.request<SystemDependency>(`/admin/plugins/dependencies/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('System dependency updated successfully');\n return result;\n }\n\n /**\n * 删除系统依赖项\n * @param id 依赖项 ID\n * @returns 成功响应\n */\n async deleteSystemDependency(id: number): Promise<{ success: boolean; message: string }> {\n log('Deleting system dependency: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/dependencies/${id}`,\n { method: 'DELETE' },\n );\n log('System dependency deleted successfully');\n return result;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:settings');\n\nexport interface Settings {\n id: number;\n key: string;\n value: string;\n description?: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// 定义支持的资源类型\nexport interface EnabledResources {\n plugins: boolean;\n agents: boolean;\n}\n\n// 定义认证配置\nexport interface AuthenticationConfig {\n enabled: boolean;\n schemes: string[];\n}\n\n// 定义文档配置\nexport interface DocumentationConfig {\n apiUrl?: string;\n policyUrl?: string;\n termsOfServiceUrl?: string;\n}\n\nexport interface SettingsMap {\n baseURL: string;\n enabledResources: EnabledResources;\n authentication: AuthenticationConfig;\n documentation: DocumentationConfig;\n locales: string[];\n [key: string]: any;\n}\n\nexport interface CreateSettingsParams {\n key: string;\n value: string;\n description?: string;\n}\n\nexport interface UpdateSettingsParams {\n value: string;\n description?: string;\n}\n\n/**\n * 系统设置管理服务\n * 处理系统设置相关的管理功能\n */\nexport class SettingsService extends BaseSDK {\n /**\n * 获取设置列表\n * @param params 查询参数\n * @returns 设置键值对对象\n */\n async getSettings(): Promise<SettingsMap> {\n return await this.request<SettingsMap>('/admin/settings');\n }\n\n /**\n * 获取单个设置\n * @param key 设置键名\n * @returns 设置详情\n */\n async getSettingByKey(key: string): Promise<{ data: Settings }> {\n log('Getting setting: %s', key);\n\n const result = await this.request<{ data: Settings }>(`/admin/settings/${key}`);\n log('Setting retrieved');\n return result;\n }\n\n /**\n * 创建设置\n * @param data 设置数据\n * @returns 创建的设置\n */\n async createSetting(data: CreateSettingsParams): Promise<{ data: Settings }> {\n log('Creating setting: %O', data);\n\n const result = await this.request<{ data: Settings }>('/admin/settings', {\n method: 'POST',\n body: JSON.stringify(data),\n });\n log('Setting created successfully');\n return result;\n }\n\n /**\n * 更新设置\n * @param key 设置键名\n * @param data 更新数据\n * @returns 更新后的设置\n */\n async updateSetting(key: string, data: UpdateSettingsParams): Promise<{ data: Settings }> {\n log('Updating setting: %s, data: %O', key, data);\n\n const result = await this.request<{ data: Settings }>(`/admin/settings/${key}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Setting updated successfully');\n return result;\n }\n\n /**\n * 删除设置\n * @param key 设置键名\n * @returns 删除结果\n */\n async deleteSetting(key: string): Promise<{ message: string }> {\n log('Deleting setting: %s', key);\n\n const result = await this.request<{ message: string }>(`/admin/settings/${key}`, {\n method: 'DELETE',\n });\n log('Setting deleted successfully');\n return result;\n }\n}\n","import debug from 'debug';\n\nimport { BaseSDK } from '@/core/BaseSDK';\nimport { AdminListQueryParams, AdminListResponse, MarketSDKOptions, ReviewStatus } from '@/types';\n\n// 创建 debug 实例\nconst log = debug('lobe-market-sdk:admin:review');\n\nexport interface Review {\n id: number;\n pluginId: number;\n status: ReviewStatus;\n comment?: string;\n reviewerId?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface PluginReviewWithRelations extends Review {\n plugin?: any;\n version?: any;\n}\n\nexport interface GetReviewsParams {\n status?: ReviewStatus;\n pluginId?: number;\n reviewerId?: number;\n limit?: number;\n offset?: number;\n orderBy?: string;\n order?: 'asc' | 'desc';\n}\n\nexport interface GetReviewsResponse {\n data: Review[];\n meta: {\n total: number;\n limit: number;\n offset: number;\n };\n}\n\nexport interface UpdateReviewParams {\n status: ReviewStatus;\n comment?: string;\n}\n\n/**\n * 审核管理服务\n * 处理插件审核相关的管理功能\n */\nexport class ReviewService extends BaseSDK {\n /**\n * 创建审核管理服务实例\n * @param options SDK 配置选项\n * @param sharedHeaders 共享的 headers 对象(可选)\n */\n constructor(options: MarketSDKOptions = {}, sharedHeaders?: Record<string, string>) {\n super(options, sharedHeaders);\n log('ReviewService instance created');\n }\n\n /**\n * 获取审核列表\n * @param params 查询参数\n * @returns 审核列表响应\n */\n async getReviews(\n params: AdminListQueryParams = {},\n ): Promise<AdminListResponse<PluginReviewWithRelations>> {\n log('Getting reviews with params: %O', params);\n\n const queryString = this.buildQueryString(params);\n const url = `/admin/reviews${queryString ? `?${queryString}` : ''}`;\n\n const result = await this.request<AdminListResponse<PluginReviewWithRelations>>(url);\n\n log('Retrieved %d reviews', result.data.length);\n return result;\n }\n\n /**\n * 获取审核详情\n * @param id 审核 ID\n * @returns 审核详情\n */\n async getReviewById(id: number): Promise<Review> {\n log('Getting review details: %d', id);\n\n const result = await this.request<Review>(`/admin/reviews/${id}`);\n log('Review details retrieved');\n return result;\n }\n\n /**\n * 更新审核状态\n * @param id 审核 ID\n * @param data 更新数据\n * @returns 更新后的审核信息\n */\n async updateReview(id: number, data: UpdateReviewParams): Promise<Review> {\n log('Updating review: %d, data: %O', id, data);\n\n const result = await this.request<Review>(`/admin/reviews/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('Review updated successfully');\n return result;\n }\n\n /**\n * 获取插件的审核历史\n * @param pluginId 插件 ID\n * @returns 审核历史列表\n */\n async getPluginReviews(pluginId: number): Promise<{ data: Review[] }> {\n log('Getting plugin reviews: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: Review[] }>(`/admin/reviews/plugin/${pluginId}`);\n log('Retrieved %d reviews for plugin', result.data.length);\n return result;\n }\n}\n","import { PluginManifest } from '@lobehub/market-types';\nimport { z } from 'zod';\n\nexport const VisibilityEnumSchema = z.enum(['public', 'private', 'internal']);\n\nexport const StatusEnumSchema = z.enum(['published', 'unpublished', 'archived', 'deprecated']);\n\n/**\n * 通用列表查询参数\n */\nexport interface AdminListQueryParams {\n current?: number;\n pageSize?: number;\n sortField?: string;\n sortOrder?: 'ascend' | 'descend';\n keyword?: string;\n}\n\n/**\n * 通用列表响应格式\n */\nexport interface AdminListResponse<T> {\n data: T[];\n total: number;\n totalPages: number;\n current: number;\n pageSize: number;\n}\n\n/**\n * 插件数据库模型\n */\nexport interface Plugin {\n id: number;\n identifier: string;\n name: string;\n description: string;\n ownerId: number;\n type: string;\n visibility: 'public' | 'private' | 'unlisted';\n status: 'published' | 'draft' | 'review' | 'rejected';\n isFeatured: boolean;\n category: string;\n tags: string[];\n icon: string | null;\n author: string | null;\n homepage: string | null;\n manifestVersion: string;\n createdAt: string;\n updatedAt: string;\n meta: Record<string, any> | null;\n installCount: number;\n ratingAverage: number | null;\n ratingCount: number;\n reviewCount: number;\n}\n\n/**\n * 插件版本数据库模型\n */\nexport interface PluginVersion {\n id: number;\n pluginId: number;\n version: string;\n isLatest: boolean;\n manifestUrl: string | null;\n toolsCount: number;\n promptsCount: number;\n resourcesCount: number;\n isValidated: boolean;\n createdAt: string;\n updatedAt: string;\n manifest: PluginManifest;\n meta: Record<string, any> | null;\n}\n\nexport type ReviewStatus = 'pending' | 'approved' | 'rejected';\n\nexport const ReviewStatusEnumSchema = z.enum(['published', 'draft', 'review', 'rejected']);\n\n/**\n * 管理员获取插件列表参数\n */\nexport interface AdminPluginParams {\n status?: 'published' | 'draft' | 'review' | 'rejected';\n visibility?: 'public' | 'private' | 'unlisted';\n featured?: boolean;\n ownerId?: number;\n limit?: number;\n offset?: number;\n query?: string;\n orderBy?: 'createdAt' | 'updatedAt' | 'installCount' | 'ratingAverage';\n order?: 'asc' | 'desc';\n}\n\n/**\n * 创建插件版本参数\n */\nexport interface PluginVersionCreateParams {\n version: string;\n manifest: PluginManifest;\n manifestUrl?: string;\n isLatest?: boolean;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n/**\n * 更新插件版本参数\n */\nexport interface PluginVersionUpdateParams {\n manifestUrl?: string;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n/**\n * 更新插件信息参数\n */\nexport interface PluginUpdateParams {\n identifier?: string;\n visibility?: 'public' | 'private' | 'unlisted';\n status?: 'published' | 'draft' | 'review' | 'rejected';\n isFeatured?: boolean;\n tags?: string[];\n meta?: Record<string, any>;\n}\n","export { MarketSDK } from './market';\nexport { MarketAdmin } from './admin';\n\nexport * from './types';\nexport * from '@lobehub/market-types';\n"],"mappings":"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","names":["debug","debug","log","debug","debug","log","debug","log","debug","debug","debug","log","debug","debug","log","debug","debug","log","debug","debug","log","debug","log","debug"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/market-sdk",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "LobeHub Market JavaScript SDK",
5
5
  "keywords": [
6
6
  "lobehub",
@@ -38,6 +38,7 @@
38
38
  "debug": "^4.4.1"
39
39
  },
40
40
  "devDependencies": {
41
+ "@lobehub/market-types": "workspace:*",
41
42
  "@types/debug": "^4.1.12",
42
43
  "dotenv": "^16.4.5",
43
44
  "tsup": "^8.4.0",
@@ -46,6 +47,7 @@
46
47
  "zod": "^3.24.4"
47
48
  },
48
49
  "peerDependencies": {
50
+ "@lobehub/market-types": "^1.0.0",
49
51
  "zod": "^3.24.4"
50
52
  },
51
53
  "publishConfig": {