@lobehub/market-sdk 0.0.10 → 0.0.11
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 +80 -80
- package/dist/index.mjs +172 -151
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -273,12 +273,64 @@ declare class BaseSDK {
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
/**
|
|
276
|
-
*
|
|
277
|
-
*
|
|
276
|
+
* 插件服务
|
|
277
|
+
* 处理插件相关功能
|
|
278
278
|
*/
|
|
279
|
-
declare class
|
|
279
|
+
declare class PluginsService extends BaseSDK {
|
|
280
280
|
/**
|
|
281
|
-
*
|
|
281
|
+
* 创建插件服务实例
|
|
282
|
+
* @param options SDK 配置选项
|
|
283
|
+
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
284
|
+
*/
|
|
285
|
+
constructor(options?: MarketSDKOptions, sharedHeaders?: Record<string, string>);
|
|
286
|
+
/**
|
|
287
|
+
* 获取插件列表
|
|
288
|
+
* @param params 查询参数
|
|
289
|
+
* @returns 插件列表响应
|
|
290
|
+
*/
|
|
291
|
+
getPluginList(params?: PluginQueryParams): Promise<PluginListResponse>;
|
|
292
|
+
/**
|
|
293
|
+
* 获取插件清单
|
|
294
|
+
* @param identifier 插件标识符
|
|
295
|
+
* @param locale 语言
|
|
296
|
+
* @param version 版本
|
|
297
|
+
* @returns 插件清单
|
|
298
|
+
*/
|
|
299
|
+
getPluginManifest(identifier: string, locale?: string, version?: string): Promise<PluginManifest>;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* LobeHub Market SDK Client
|
|
304
|
+
* 采用组合模式组合各个领域服务
|
|
305
|
+
*/
|
|
306
|
+
declare class MarketSDK extends BaseSDK {
|
|
307
|
+
/**
|
|
308
|
+
* 插件服务
|
|
309
|
+
*/
|
|
310
|
+
readonly plugins: PluginsService;
|
|
311
|
+
/**
|
|
312
|
+
* 发现服务
|
|
313
|
+
*/
|
|
314
|
+
private readonly discovery;
|
|
315
|
+
/**
|
|
316
|
+
* Create MarketSDK instance
|
|
317
|
+
* @param options SDK configuration options
|
|
318
|
+
*/
|
|
319
|
+
constructor(options?: MarketSDKOptions);
|
|
320
|
+
/**
|
|
321
|
+
* Get market service discovery document
|
|
322
|
+
* @returns Service discovery document
|
|
323
|
+
*/
|
|
324
|
+
getDiscoveryDocument(): Promise<DiscoveryDocument>;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* 插件管理服务
|
|
329
|
+
* 处理插件相关的管理功能
|
|
330
|
+
*/
|
|
331
|
+
declare class PluginAdminService extends BaseSDK {
|
|
332
|
+
/**
|
|
333
|
+
* 创建插件管理服务实例
|
|
282
334
|
* @param options SDK 配置选项
|
|
283
335
|
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
284
336
|
*/
|
|
@@ -302,9 +354,9 @@ declare class AdminService extends BaseSDK {
|
|
|
302
354
|
data: Plugin[];
|
|
303
355
|
}>;
|
|
304
356
|
/**
|
|
305
|
-
*
|
|
357
|
+
* 获取单个插件
|
|
306
358
|
* @param id 插件 ID
|
|
307
|
-
* @returns
|
|
359
|
+
* @returns 插件详情
|
|
308
360
|
*/
|
|
309
361
|
getPlugin(id: number): Promise<{
|
|
310
362
|
data: Plugin & {
|
|
@@ -395,6 +447,19 @@ declare class AdminService extends BaseSDK {
|
|
|
395
447
|
success: boolean;
|
|
396
448
|
message: string;
|
|
397
449
|
}>;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* 系统依赖管理服务
|
|
454
|
+
* 处理插件系统依赖相关的管理功能
|
|
455
|
+
*/
|
|
456
|
+
declare class SystemDependencyService extends BaseSDK {
|
|
457
|
+
/**
|
|
458
|
+
* 创建系统依赖管理服务实例
|
|
459
|
+
* @param options SDK 配置选项
|
|
460
|
+
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
461
|
+
*/
|
|
462
|
+
constructor(options?: MarketSDKOptions, sharedHeaders?: Record<string, string>);
|
|
398
463
|
/**
|
|
399
464
|
* 获取所有系统依赖项
|
|
400
465
|
* @returns 系统依赖项列表
|
|
@@ -439,88 +504,23 @@ declare class AdminService extends BaseSDK {
|
|
|
439
504
|
}
|
|
440
505
|
|
|
441
506
|
/**
|
|
442
|
-
*
|
|
443
|
-
*
|
|
507
|
+
* LobeHub 市场管理 SDK 客户端
|
|
508
|
+
* 专门用于管理市场的管理功能
|
|
444
509
|
*/
|
|
445
|
-
declare class
|
|
510
|
+
declare class MarketAdmin extends BaseSDK {
|
|
446
511
|
/**
|
|
447
|
-
*
|
|
448
|
-
* @param options SDK 配置选项
|
|
449
|
-
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
512
|
+
* 插件管理服务
|
|
450
513
|
*/
|
|
451
|
-
|
|
514
|
+
readonly plugins: PluginAdminService;
|
|
452
515
|
/**
|
|
453
|
-
*
|
|
454
|
-
* @param params 查询参数
|
|
455
|
-
* @returns 插件列表响应
|
|
456
|
-
*/
|
|
457
|
-
getPluginList(params?: PluginQueryParams): Promise<PluginListResponse>;
|
|
458
|
-
/**
|
|
459
|
-
* 获取插件清单
|
|
460
|
-
* @param identifier 插件标识符
|
|
461
|
-
* @param locale 语言
|
|
462
|
-
* @param version 版本
|
|
463
|
-
* @returns 插件清单
|
|
516
|
+
* 系统依赖管理服务
|
|
464
517
|
*/
|
|
465
|
-
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
/**
|
|
469
|
-
* 发现服务
|
|
470
|
-
* 处理服务发现功能
|
|
471
|
-
*/
|
|
472
|
-
declare class DiscoveryService extends BaseSDK {
|
|
473
|
-
private discoveryDoc?;
|
|
518
|
+
readonly dependencies: SystemDependencyService;
|
|
474
519
|
/**
|
|
475
|
-
*
|
|
520
|
+
* 创建 MarketAdmin 实例
|
|
476
521
|
* @param options SDK 配置选项
|
|
477
|
-
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
478
|
-
*/
|
|
479
|
-
constructor(options?: MarketSDKOptions, sharedHeaders?: Record<string, string>);
|
|
480
|
-
/**
|
|
481
|
-
* 获取市场服务发现文档
|
|
482
|
-
* @returns 服务发现文档
|
|
483
|
-
*/
|
|
484
|
-
getDiscoveryDocument(): Promise<DiscoveryDocument>;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
/**
|
|
488
|
-
* LobeHub Market SDK Client
|
|
489
|
-
* 采用组合模式组合各个领域服务
|
|
490
|
-
*/
|
|
491
|
-
declare class MarketSDK extends BaseSDK {
|
|
492
|
-
/**
|
|
493
|
-
* 插件服务
|
|
494
|
-
*/
|
|
495
|
-
readonly plugins: PluginsService;
|
|
496
|
-
/**
|
|
497
|
-
* 管理员服务
|
|
498
|
-
*/
|
|
499
|
-
readonly admin: AdminService;
|
|
500
|
-
/**
|
|
501
|
-
* 发现服务
|
|
502
|
-
*/
|
|
503
|
-
private readonly discovery;
|
|
504
|
-
/**
|
|
505
|
-
* Create MarketSDK instance
|
|
506
|
-
* @param options SDK configuration options
|
|
507
522
|
*/
|
|
508
523
|
constructor(options?: MarketSDKOptions);
|
|
509
|
-
/**
|
|
510
|
-
* Get market service discovery document
|
|
511
|
-
* @returns Service discovery document
|
|
512
|
-
*/
|
|
513
|
-
getDiscoveryDocument(): Promise<DiscoveryDocument>;
|
|
514
|
-
/**
|
|
515
|
-
* Import plugin manifests (requires admin privileges)
|
|
516
|
-
* @param manifests Plugin manifest array
|
|
517
|
-
* @param ownerId Owner ID
|
|
518
|
-
* @returns Import result
|
|
519
|
-
*/
|
|
520
|
-
importManifests(manifests: PluginManifest[], ownerId?: number): Promise<{
|
|
521
|
-
success: number;
|
|
522
|
-
failed: number;
|
|
523
|
-
}>;
|
|
524
524
|
}
|
|
525
525
|
|
|
526
|
-
export { type AdminPluginParams,
|
|
526
|
+
export { 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 SystemDependency };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// src/market-sdk.ts
|
|
2
|
-
import
|
|
1
|
+
// src/market/market-sdk.ts
|
|
2
|
+
import debug4 from "debug";
|
|
3
3
|
|
|
4
4
|
// src/core/BaseSDK.ts
|
|
5
5
|
import debug from "debug";
|
|
@@ -77,18 +77,122 @@ var BaseSDK = class {
|
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
|
|
80
|
-
// src/services/
|
|
80
|
+
// src/market/services/PluginsService.ts
|
|
81
81
|
import debug2 from "debug";
|
|
82
|
-
var log2 = debug2("lobe-market-sdk:
|
|
83
|
-
var
|
|
82
|
+
var log2 = debug2("lobe-market-sdk:plugins");
|
|
83
|
+
var PluginsService = class extends BaseSDK {
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* 创建插件服务实例
|
|
86
86
|
* @param options SDK 配置选项
|
|
87
87
|
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
88
88
|
*/
|
|
89
89
|
constructor(options = {}, sharedHeaders) {
|
|
90
90
|
super(options, sharedHeaders);
|
|
91
|
-
log2("
|
|
91
|
+
log2("PluginsService instance created");
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 获取插件列表
|
|
95
|
+
* @param params 查询参数
|
|
96
|
+
* @returns 插件列表响应
|
|
97
|
+
*/
|
|
98
|
+
async getPluginList(params = {}) {
|
|
99
|
+
const locale = params.locale || this.defaultLocale;
|
|
100
|
+
const queryParams = { ...params, locale };
|
|
101
|
+
const queryString = this.buildQueryString(queryParams);
|
|
102
|
+
log2("Getting plugin list: %O", queryParams);
|
|
103
|
+
const result = await this.request(`/v1/plugins${queryString}`);
|
|
104
|
+
log2("Retrieved %d plugins", result.items.length);
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 获取插件清单
|
|
109
|
+
* @param identifier 插件标识符
|
|
110
|
+
* @param locale 语言
|
|
111
|
+
* @param version 版本
|
|
112
|
+
* @returns 插件清单
|
|
113
|
+
*/
|
|
114
|
+
async getPluginManifest(identifier, locale, version) {
|
|
115
|
+
log2("Getting plugin manifest: %O", { identifier, version, locale });
|
|
116
|
+
const localeParam = locale || this.defaultLocale;
|
|
117
|
+
const params = { locale: localeParam };
|
|
118
|
+
if (version) {
|
|
119
|
+
params.version = version;
|
|
120
|
+
}
|
|
121
|
+
const queryString = this.buildQueryString(params);
|
|
122
|
+
const manifest = await this.request(
|
|
123
|
+
`/v1/plugins/${identifier}/manifest${queryString}`
|
|
124
|
+
);
|
|
125
|
+
log2("Plugin manifest successfully retrieved: %s", identifier);
|
|
126
|
+
return manifest;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/market/services/DiscoveryService.ts
|
|
131
|
+
import debug3 from "debug";
|
|
132
|
+
var log3 = debug3("lobe-market-sdk:discovery");
|
|
133
|
+
var DiscoveryService = class extends BaseSDK {
|
|
134
|
+
/**
|
|
135
|
+
* 创建发现服务实例
|
|
136
|
+
* @param options SDK 配置选项
|
|
137
|
+
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
138
|
+
*/
|
|
139
|
+
constructor(options = {}, sharedHeaders) {
|
|
140
|
+
super(options, sharedHeaders);
|
|
141
|
+
log3("DiscoveryService instance created");
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 获取市场服务发现文档
|
|
145
|
+
* @returns 服务发现文档
|
|
146
|
+
*/
|
|
147
|
+
async getDiscoveryDocument() {
|
|
148
|
+
log3("Fetching discovery document");
|
|
149
|
+
if (this.discoveryDoc) {
|
|
150
|
+
log3("Returning cached discovery document");
|
|
151
|
+
return this.discoveryDoc;
|
|
152
|
+
}
|
|
153
|
+
this.discoveryDoc = await this.request("/market/.well-known/discovery");
|
|
154
|
+
log3("Discovery document successfully fetched");
|
|
155
|
+
return this.discoveryDoc;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// src/market/market-sdk.ts
|
|
160
|
+
var log4 = debug4("lobe-market-sdk");
|
|
161
|
+
var MarketSDK = class extends BaseSDK {
|
|
162
|
+
/**
|
|
163
|
+
* Create MarketSDK instance
|
|
164
|
+
* @param options SDK configuration options
|
|
165
|
+
*/
|
|
166
|
+
constructor(options = {}) {
|
|
167
|
+
super(options);
|
|
168
|
+
log4("MarketSDK instance created");
|
|
169
|
+
this.plugins = new PluginsService(options, this.headers);
|
|
170
|
+
this.discovery = new DiscoveryService(options, this.headers);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get market service discovery document
|
|
174
|
+
* @returns Service discovery document
|
|
175
|
+
*/
|
|
176
|
+
async getDiscoveryDocument() {
|
|
177
|
+
return this.discovery.getDiscoveryDocument();
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
// src/admin/MarketAdmin.ts
|
|
182
|
+
import debug7 from "debug";
|
|
183
|
+
|
|
184
|
+
// src/admin/services/PluginAdminService.ts
|
|
185
|
+
import debug5 from "debug";
|
|
186
|
+
var log5 = debug5("lobe-market-sdk:admin:plugin");
|
|
187
|
+
var PluginAdminService = class extends BaseSDK {
|
|
188
|
+
/**
|
|
189
|
+
* 创建插件管理服务实例
|
|
190
|
+
* @param options SDK 配置选项
|
|
191
|
+
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
192
|
+
*/
|
|
193
|
+
constructor(options = {}, sharedHeaders) {
|
|
194
|
+
super(options, sharedHeaders);
|
|
195
|
+
log5("PluginAdminService instance created");
|
|
92
196
|
}
|
|
93
197
|
/**
|
|
94
198
|
* 导入插件清单(需要管理员权限)
|
|
@@ -97,9 +201,9 @@ var AdminService = class extends BaseSDK {
|
|
|
97
201
|
* @returns 导入结果
|
|
98
202
|
*/
|
|
99
203
|
async importManifests(manifests, ownerId) {
|
|
100
|
-
|
|
204
|
+
log5(`\u5F00\u59CB\u6279\u91CF\u5BFC\u5165 ${manifests.length} \u4E2A\u6E05\u5355`);
|
|
101
205
|
if (ownerId) {
|
|
102
|
-
|
|
206
|
+
log5(`\u4F7F\u7528\u6307\u5B9A\u7684\u6240\u6709\u8005 ID: ${ownerId}`);
|
|
103
207
|
}
|
|
104
208
|
const response = await this.request(
|
|
105
209
|
"/admin/plugins/import",
|
|
@@ -111,7 +215,7 @@ var AdminService = class extends BaseSDK {
|
|
|
111
215
|
})
|
|
112
216
|
}
|
|
113
217
|
);
|
|
114
|
-
|
|
218
|
+
log5(`\u6279\u91CF\u5BFC\u5165\u5B8C\u6210: ${response.data.success} \u4E2A\u6210\u529F, ${response.data.failed} \u4E2A\u5931\u8D25`);
|
|
115
219
|
return response.data;
|
|
116
220
|
}
|
|
117
221
|
/**
|
|
@@ -120,24 +224,24 @@ var AdminService = class extends BaseSDK {
|
|
|
120
224
|
* @returns 插件列表响应
|
|
121
225
|
*/
|
|
122
226
|
async getPlugins(params = {}) {
|
|
123
|
-
|
|
227
|
+
log5("Getting plugins with params: %O", params);
|
|
124
228
|
const queryString = this.buildQueryString(params);
|
|
125
229
|
const url = `/admin/plugins${queryString ? `?${queryString}` : ""}`;
|
|
126
230
|
const result = await this.request(url);
|
|
127
|
-
|
|
231
|
+
log5("Retrieved %d plugins", result.data.length);
|
|
128
232
|
return result;
|
|
129
233
|
}
|
|
130
234
|
/**
|
|
131
|
-
*
|
|
235
|
+
* 获取单个插件
|
|
132
236
|
* @param id 插件 ID
|
|
133
|
-
* @returns
|
|
237
|
+
* @returns 插件详情
|
|
134
238
|
*/
|
|
135
239
|
async getPlugin(id) {
|
|
136
|
-
|
|
240
|
+
log5("\u83B7\u53D6\u63D2\u4EF6\u8BE6\u60C5\uFF08\u7BA1\u7406\u5458\uFF09: %d", id);
|
|
137
241
|
const result = await this.request(
|
|
138
242
|
`/admin/plugins/${id}`
|
|
139
243
|
);
|
|
140
|
-
|
|
244
|
+
log5("\u5DF2\u83B7\u53D6\u63D2\u4EF6\uFF08\u5171 %d \u4E2A\u7248\u672C\uFF09", result.data.versions.length);
|
|
141
245
|
return result;
|
|
142
246
|
}
|
|
143
247
|
/**
|
|
@@ -147,12 +251,12 @@ var AdminService = class extends BaseSDK {
|
|
|
147
251
|
* @returns 更新后的插件
|
|
148
252
|
*/
|
|
149
253
|
async updatePlugin(id, data) {
|
|
150
|
-
|
|
254
|
+
log5("\u66F4\u65B0\u63D2\u4EF6: %d\uFF0C\u6570\u636E: %O", id, data);
|
|
151
255
|
const result = await this.request(`/admin/plugins/${id}`, {
|
|
152
256
|
method: "PUT",
|
|
153
257
|
body: JSON.stringify(data)
|
|
154
258
|
});
|
|
155
|
-
|
|
259
|
+
log5("\u63D2\u4EF6\u66F4\u65B0\u6210\u529F");
|
|
156
260
|
return result;
|
|
157
261
|
}
|
|
158
262
|
/**
|
|
@@ -162,7 +266,7 @@ var AdminService = class extends BaseSDK {
|
|
|
162
266
|
* @returns 成功响应
|
|
163
267
|
*/
|
|
164
268
|
async updatePluginStatus(id, status) {
|
|
165
|
-
|
|
269
|
+
log5("\u66F4\u65B0\u63D2\u4EF6\u72B6\u6001: %d \u4E3A %s", id, status);
|
|
166
270
|
const result = await this.request(
|
|
167
271
|
`/admin/plugins/${id}/status`,
|
|
168
272
|
{
|
|
@@ -170,7 +274,7 @@ var AdminService = class extends BaseSDK {
|
|
|
170
274
|
body: JSON.stringify({ status })
|
|
171
275
|
}
|
|
172
276
|
);
|
|
173
|
-
|
|
277
|
+
log5("\u63D2\u4EF6\u72B6\u6001\u66F4\u65B0\u6210\u529F");
|
|
174
278
|
return result;
|
|
175
279
|
}
|
|
176
280
|
/**
|
|
@@ -179,12 +283,12 @@ var AdminService = class extends BaseSDK {
|
|
|
179
283
|
* @returns 成功响应
|
|
180
284
|
*/
|
|
181
285
|
async deletePlugin(id) {
|
|
182
|
-
|
|
286
|
+
log5("\u5220\u9664\u63D2\u4EF6: %d", id);
|
|
183
287
|
const result = await this.request(
|
|
184
288
|
`/admin/plugins/${id}`,
|
|
185
289
|
{ method: "DELETE" }
|
|
186
290
|
);
|
|
187
|
-
|
|
291
|
+
log5("\u63D2\u4EF6\u5220\u9664\u6210\u529F");
|
|
188
292
|
return result;
|
|
189
293
|
}
|
|
190
294
|
/**
|
|
@@ -193,11 +297,11 @@ var AdminService = class extends BaseSDK {
|
|
|
193
297
|
* @returns 插件版本列表
|
|
194
298
|
*/
|
|
195
299
|
async getPluginVersions(pluginId) {
|
|
196
|
-
|
|
300
|
+
log5("Getting plugin versions: pluginId=%d", pluginId);
|
|
197
301
|
const result = await this.request(
|
|
198
302
|
`/admin/plugins/${pluginId}/versions`
|
|
199
303
|
);
|
|
200
|
-
|
|
304
|
+
log5("Retrieved %d versions", result.data.length);
|
|
201
305
|
return result;
|
|
202
306
|
}
|
|
203
307
|
/**
|
|
@@ -207,11 +311,11 @@ var AdminService = class extends BaseSDK {
|
|
|
207
311
|
* @returns 插件版本
|
|
208
312
|
*/
|
|
209
313
|
async getPluginVersion(pluginId, versionId) {
|
|
210
|
-
|
|
314
|
+
log5("Getting version details: pluginId=%d, versionId=%d", pluginId, versionId);
|
|
211
315
|
const result = await this.request(
|
|
212
316
|
`/admin/plugins/${pluginId}/versions/${versionId}`
|
|
213
317
|
);
|
|
214
|
-
|
|
318
|
+
log5("Version details retrieved");
|
|
215
319
|
return result;
|
|
216
320
|
}
|
|
217
321
|
/**
|
|
@@ -221,7 +325,7 @@ var AdminService = class extends BaseSDK {
|
|
|
221
325
|
* @returns 创建的版本
|
|
222
326
|
*/
|
|
223
327
|
async createPluginVersion(pluginId, data) {
|
|
224
|
-
|
|
328
|
+
log5("Creating new version: pluginId=%d", pluginId);
|
|
225
329
|
const result = await this.request(
|
|
226
330
|
`/admin/plugins/${pluginId}/versions`,
|
|
227
331
|
{
|
|
@@ -229,7 +333,7 @@ var AdminService = class extends BaseSDK {
|
|
|
229
333
|
body: JSON.stringify(data)
|
|
230
334
|
}
|
|
231
335
|
);
|
|
232
|
-
|
|
336
|
+
log5("Plugin version created successfully");
|
|
233
337
|
return result;
|
|
234
338
|
}
|
|
235
339
|
/**
|
|
@@ -240,7 +344,7 @@ var AdminService = class extends BaseSDK {
|
|
|
240
344
|
* @returns 更新后的版本
|
|
241
345
|
*/
|
|
242
346
|
async updatePluginVersion(pluginId, versionId, data) {
|
|
243
|
-
|
|
347
|
+
log5("Updating version: pluginId=%d, versionId=%d", pluginId, versionId);
|
|
244
348
|
const result = await this.request(
|
|
245
349
|
`/admin/plugins/${pluginId}/versions/${versionId}`,
|
|
246
350
|
{
|
|
@@ -248,7 +352,7 @@ var AdminService = class extends BaseSDK {
|
|
|
248
352
|
body: JSON.stringify(data)
|
|
249
353
|
}
|
|
250
354
|
);
|
|
251
|
-
|
|
355
|
+
log5("\u63D2\u4EF6\u7248\u672C\u66F4\u65B0\u6210\u529F");
|
|
252
356
|
return result;
|
|
253
357
|
}
|
|
254
358
|
/**
|
|
@@ -258,12 +362,12 @@ var AdminService = class extends BaseSDK {
|
|
|
258
362
|
* @returns 成功响应
|
|
259
363
|
*/
|
|
260
364
|
async deletePluginVersion(pluginId, versionId) {
|
|
261
|
-
|
|
365
|
+
log5("\u5220\u9664\u7248\u672C: pluginId=%d, versionId=%d", pluginId, versionId);
|
|
262
366
|
const result = await this.request(
|
|
263
367
|
`/admin/plugins/${pluginId}/versions/${versionId}`,
|
|
264
368
|
{ method: "DELETE" }
|
|
265
369
|
);
|
|
266
|
-
|
|
370
|
+
log5("\u63D2\u4EF6\u7248\u672C\u5220\u9664\u6210\u529F");
|
|
267
371
|
return result;
|
|
268
372
|
}
|
|
269
373
|
/**
|
|
@@ -273,22 +377,37 @@ var AdminService = class extends BaseSDK {
|
|
|
273
377
|
* @returns 成功响应
|
|
274
378
|
*/
|
|
275
379
|
async setPluginVersionAsLatest(pluginId, versionId) {
|
|
276
|
-
|
|
380
|
+
log5("Setting version as latest: pluginId=%d, versionId=%d", pluginId, versionId);
|
|
277
381
|
const result = await this.request(
|
|
278
382
|
`/admin/plugins/${pluginId}/versions/${versionId}/latest`,
|
|
279
383
|
{ method: "POST" }
|
|
280
384
|
);
|
|
281
|
-
|
|
385
|
+
log5("Version set as latest");
|
|
282
386
|
return result;
|
|
283
387
|
}
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
// src/admin/services/SystemDependencyService.ts
|
|
391
|
+
import debug6 from "debug";
|
|
392
|
+
var log6 = debug6("lobe-market-sdk:admin:dependency");
|
|
393
|
+
var SystemDependencyService = class extends BaseSDK {
|
|
394
|
+
/**
|
|
395
|
+
* 创建系统依赖管理服务实例
|
|
396
|
+
* @param options SDK 配置选项
|
|
397
|
+
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
398
|
+
*/
|
|
399
|
+
constructor(options = {}, sharedHeaders) {
|
|
400
|
+
super(options, sharedHeaders);
|
|
401
|
+
log6("SystemDependencyService instance created");
|
|
402
|
+
}
|
|
284
403
|
/**
|
|
285
404
|
* 获取所有系统依赖项
|
|
286
405
|
* @returns 系统依赖项列表
|
|
287
406
|
*/
|
|
288
407
|
async getSystemDependencies() {
|
|
289
|
-
|
|
408
|
+
log6("Getting all system dependencies");
|
|
290
409
|
const result = await this.request(`/admin/plugins/dependencies`);
|
|
291
|
-
|
|
410
|
+
log6("Retrieved %d system dependencies", result.data.length);
|
|
292
411
|
return result;
|
|
293
412
|
}
|
|
294
413
|
/**
|
|
@@ -297,11 +416,11 @@ var AdminService = class extends BaseSDK {
|
|
|
297
416
|
* @returns 系统依赖项
|
|
298
417
|
*/
|
|
299
418
|
async getSystemDependency(id) {
|
|
300
|
-
|
|
419
|
+
log6("Getting system dependency details: %d", id);
|
|
301
420
|
const result = await this.request(
|
|
302
421
|
`/admin/plugins/dependencies/${id}`
|
|
303
422
|
);
|
|
304
|
-
|
|
423
|
+
log6("System dependency details retrieved");
|
|
305
424
|
return result;
|
|
306
425
|
}
|
|
307
426
|
/**
|
|
@@ -310,12 +429,12 @@ var AdminService = class extends BaseSDK {
|
|
|
310
429
|
* @returns 创建的依赖项
|
|
311
430
|
*/
|
|
312
431
|
async createSystemDependency(data) {
|
|
313
|
-
|
|
432
|
+
log6("Creating system dependency: %O", data);
|
|
314
433
|
const result = await this.request(`/admin/plugins/dependencies`, {
|
|
315
434
|
method: "POST",
|
|
316
435
|
body: JSON.stringify(data)
|
|
317
436
|
});
|
|
318
|
-
|
|
437
|
+
log6("System dependency created successfully");
|
|
319
438
|
return result;
|
|
320
439
|
}
|
|
321
440
|
/**
|
|
@@ -325,7 +444,7 @@ var AdminService = class extends BaseSDK {
|
|
|
325
444
|
* @returns 更新后的依赖项
|
|
326
445
|
*/
|
|
327
446
|
async updateSystemDependency(id, data) {
|
|
328
|
-
|
|
447
|
+
log6("Updating system dependency: %d, data: %O", id, data);
|
|
329
448
|
const result = await this.request(
|
|
330
449
|
`/admin/plugins/dependencies/${id}`,
|
|
331
450
|
{
|
|
@@ -333,7 +452,7 @@ var AdminService = class extends BaseSDK {
|
|
|
333
452
|
body: JSON.stringify(data)
|
|
334
453
|
}
|
|
335
454
|
);
|
|
336
|
-
|
|
455
|
+
log6("System dependency updated successfully");
|
|
337
456
|
return result;
|
|
338
457
|
}
|
|
339
458
|
/**
|
|
@@ -342,124 +461,28 @@ var AdminService = class extends BaseSDK {
|
|
|
342
461
|
* @returns 成功响应
|
|
343
462
|
*/
|
|
344
463
|
async deleteSystemDependency(id) {
|
|
345
|
-
|
|
464
|
+
log6("\u5220\u9664\u7CFB\u7EDF\u4F9D\u8D56\u9879: %d", id);
|
|
346
465
|
const result = await this.request(
|
|
347
466
|
`/admin/plugins/dependencies/${id}`,
|
|
348
467
|
{ method: "DELETE" }
|
|
349
468
|
);
|
|
350
|
-
|
|
469
|
+
log6("\u7CFB\u7EDF\u4F9D\u8D56\u9879\u5220\u9664\u6210\u529F");
|
|
351
470
|
return result;
|
|
352
471
|
}
|
|
353
472
|
};
|
|
354
473
|
|
|
355
|
-
// src/
|
|
356
|
-
|
|
357
|
-
var
|
|
358
|
-
var PluginsService = class extends BaseSDK {
|
|
474
|
+
// src/admin/MarketAdmin.ts
|
|
475
|
+
var log7 = debug7("lobe-market-sdk:admin");
|
|
476
|
+
var MarketAdmin = class extends BaseSDK {
|
|
359
477
|
/**
|
|
360
|
-
*
|
|
478
|
+
* 创建 MarketAdmin 实例
|
|
361
479
|
* @param options SDK 配置选项
|
|
362
|
-
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
363
|
-
*/
|
|
364
|
-
constructor(options = {}, sharedHeaders) {
|
|
365
|
-
super(options, sharedHeaders);
|
|
366
|
-
log3("PluginsService instance created");
|
|
367
|
-
}
|
|
368
|
-
/**
|
|
369
|
-
* 获取插件列表
|
|
370
|
-
* @param params 查询参数
|
|
371
|
-
* @returns 插件列表响应
|
|
372
|
-
*/
|
|
373
|
-
async getPluginList(params = {}) {
|
|
374
|
-
const locale = params.locale || this.defaultLocale;
|
|
375
|
-
const queryParams = { ...params, locale };
|
|
376
|
-
const queryString = this.buildQueryString(queryParams);
|
|
377
|
-
log3("Getting plugin list: %O", queryParams);
|
|
378
|
-
const result = await this.request(`/v1/plugins${queryString}`);
|
|
379
|
-
log3("Retrieved %d plugins", result.items.length);
|
|
380
|
-
return result;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* 获取插件清单
|
|
384
|
-
* @param identifier 插件标识符
|
|
385
|
-
* @param locale 语言
|
|
386
|
-
* @param version 版本
|
|
387
|
-
* @returns 插件清单
|
|
388
|
-
*/
|
|
389
|
-
async getPluginManifest(identifier, locale, version) {
|
|
390
|
-
log3("Getting plugin manifest: %O", { identifier, version, locale });
|
|
391
|
-
const localeParam = locale || this.defaultLocale;
|
|
392
|
-
const params = { locale: localeParam };
|
|
393
|
-
if (version) {
|
|
394
|
-
params.version = version;
|
|
395
|
-
}
|
|
396
|
-
const queryString = this.buildQueryString(params);
|
|
397
|
-
const manifest = await this.request(
|
|
398
|
-
`/v1/plugins/${identifier}/manifest${queryString}`
|
|
399
|
-
);
|
|
400
|
-
log3("Plugin manifest successfully retrieved: %s", identifier);
|
|
401
|
-
return manifest;
|
|
402
|
-
}
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
// src/services/DiscoveryService.ts
|
|
406
|
-
import debug4 from "debug";
|
|
407
|
-
var log4 = debug4("lobe-market-sdk:discovery");
|
|
408
|
-
var DiscoveryService = class extends BaseSDK {
|
|
409
|
-
/**
|
|
410
|
-
* 创建发现服务实例
|
|
411
|
-
* @param options SDK 配置选项
|
|
412
|
-
* @param sharedHeaders 共享的 headers 对象(可选)
|
|
413
|
-
*/
|
|
414
|
-
constructor(options = {}, sharedHeaders) {
|
|
415
|
-
super(options, sharedHeaders);
|
|
416
|
-
log4("DiscoveryService instance created");
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* 获取市场服务发现文档
|
|
420
|
-
* @returns 服务发现文档
|
|
421
|
-
*/
|
|
422
|
-
async getDiscoveryDocument() {
|
|
423
|
-
log4("Fetching discovery document");
|
|
424
|
-
if (this.discoveryDoc) {
|
|
425
|
-
log4("Returning cached discovery document");
|
|
426
|
-
return this.discoveryDoc;
|
|
427
|
-
}
|
|
428
|
-
this.discoveryDoc = await this.request("/market/.well-known/discovery");
|
|
429
|
-
log4("Discovery document successfully fetched");
|
|
430
|
-
return this.discoveryDoc;
|
|
431
|
-
}
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
// src/market-sdk.ts
|
|
435
|
-
var log5 = debug5("lobe-market-sdk");
|
|
436
|
-
var MarketSDK = class extends BaseSDK {
|
|
437
|
-
/**
|
|
438
|
-
* Create MarketSDK instance
|
|
439
|
-
* @param options SDK configuration options
|
|
440
480
|
*/
|
|
441
481
|
constructor(options = {}) {
|
|
442
482
|
super(options);
|
|
443
|
-
|
|
444
|
-
this.plugins = new
|
|
445
|
-
this.
|
|
446
|
-
this.discovery = new DiscoveryService(options, this.headers);
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* Get market service discovery document
|
|
450
|
-
* @returns Service discovery document
|
|
451
|
-
*/
|
|
452
|
-
async getDiscoveryDocument() {
|
|
453
|
-
return this.discovery.getDiscoveryDocument();
|
|
454
|
-
}
|
|
455
|
-
/**
|
|
456
|
-
* Import plugin manifests (requires admin privileges)
|
|
457
|
-
* @param manifests Plugin manifest array
|
|
458
|
-
* @param ownerId Owner ID
|
|
459
|
-
* @returns Import result
|
|
460
|
-
*/
|
|
461
|
-
async importManifests(manifests, ownerId) {
|
|
462
|
-
return this.admin.importManifests(manifests, ownerId);
|
|
483
|
+
log7("MarketAdmin instance created");
|
|
484
|
+
this.plugins = new PluginAdminService(options, this.headers);
|
|
485
|
+
this.dependencies = new SystemDependencyService(options, this.headers);
|
|
463
486
|
}
|
|
464
487
|
};
|
|
465
488
|
|
|
@@ -491,12 +514,10 @@ var InstallationMethodEnum2 = z2.enum([
|
|
|
491
514
|
"none"
|
|
492
515
|
]);
|
|
493
516
|
export {
|
|
494
|
-
AdminService,
|
|
495
517
|
ConnectionTypeEnum2 as ConnectionTypeEnum,
|
|
496
|
-
DiscoveryService,
|
|
497
518
|
InstallationMethodEnum2 as InstallationMethodEnum,
|
|
519
|
+
MarketAdmin,
|
|
498
520
|
MarketSDK,
|
|
499
|
-
PluginTypeEnum2 as PluginTypeEnum
|
|
500
|
-
PluginsService
|
|
521
|
+
PluginTypeEnum2 as PluginTypeEnum
|
|
501
522
|
};
|
|
502
523
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/market-sdk.ts","../src/core/BaseSDK.ts","../src/services/AdminService.ts","../src/services/PluginsService.ts","../src/services/DiscoveryService.ts","../src/types/index.ts","../src/types/plugins.ts"],"sourcesContent":["import debug from 'debug';\n\nimport { BaseSDK } from './core/BaseSDK';\nimport { AdminService, DiscoveryService, PluginsService } from './services';\nimport {\n AdminPluginParams,\n DiscoveryDocument,\n MarketSDKOptions,\n Plugin,\n PluginListResponse,\n PluginManifest,\n PluginVersion,\n PluginVersionCreateParams,\n PluginVersionUpdateParams,\n} 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 readonly admin: AdminService;\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.admin = new AdminService(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 /**\n * Import plugin manifests (requires admin privileges)\n * @param manifests Plugin manifest array\n * @param ownerId Owner ID\n * @returns Import result\n */\n async importManifests(\n manifests: PluginManifest[],\n ownerId?: number,\n ): Promise<{ success: number; failed: number }> {\n return this.admin.importManifests(manifests, ownerId);\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 = options.baseUrl || 'https://market.lobehub.com/api';\n this.defaultLocale = options.defaultLocale || 'en-US';\n\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 ...(options.apiKey ? { Authorization: `Bearer ${options.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 {\n AdminPluginParams,\n MarketSDKOptions,\n Plugin,\n PluginManifest,\n PluginUpdateParams,\n PluginVersion,\n PluginVersionCreateParams,\n PluginVersionUpdateParams,\n SystemDependency,\n} from '../types';\n\n// Create debug instance\nconst log = debug('lobe-market-sdk:admin');\n\n/**\n * 管理员服务\n * 处理管理员相关功能\n */\nexport class AdminService 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('AdminService 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(`开始批量导入 ${manifests.length} 个清单`);\n if (ownerId) {\n log(`使用指定的所有者 ID: ${ownerId}`);\n }\n\n const response = await this.request<{ data: { 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(`批量导入完成: ${response.data.success} 个成功, ${response.data.failed} 个失败`);\n return response.data;\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPlugins(params: AdminPluginParams = {}): Promise<{ data: 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<{ data: Plugin[] }>(url);\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): Promise<{ data: Plugin & { versions: PluginVersion[] } }> {\n log('获取插件详情(管理员): %d', id);\n\n const result = await this.request<{ data: Plugin & { versions: PluginVersion[] } }>(\n `/admin/plugins/${id}`,\n );\n log('已获取插件(共 %d 个版本)', result.data.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<{ data: Plugin }> {\n log('更新插件: %d,数据: %O', id, data);\n\n const result = await this.request<{ data: Plugin }>(`/admin/plugins/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('插件更新成功');\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('更新插件状态: %d 为 %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('插件状态更新成功');\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('删除插件: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}`,\n { method: 'DELETE' },\n );\n log('插件删除成功');\n return result;\n }\n\n /**\n * 获取插件版本列表\n * @param pluginId 插件 ID\n * @returns 插件版本列表\n */\n async getPluginVersions(pluginId: number): Promise<{ data: PluginVersion[] }> {\n log('Getting plugin versions: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: PluginVersion[] }>(\n `/admin/plugins/${pluginId}/versions`,\n );\n\n log('Retrieved %d versions', result.data.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<{ data: PluginVersion }> {\n log('Getting version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ data: 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<{ data: PluginVersion }> {\n log('Creating new version: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: PluginVersion }>(\n `/admin/plugins/${pluginId}/versions`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n },\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<{ data: PluginVersion }> {\n log('Updating version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ data: PluginVersion }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('插件版本更新成功');\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('删除版本: 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('插件版本删除成功');\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 * @returns 系统依赖项列表\n */\n async getSystemDependencies(): Promise<{ data: SystemDependency[] }> {\n log('Getting all system dependencies');\n\n const result = await this.request<{ data: SystemDependency[] }>(`/admin/plugins/dependencies`);\n log('Retrieved %d system dependencies', result.data.length);\n return result;\n }\n\n /**\n * 获取特定系统依赖项\n * @param id 依赖项 ID\n * @returns 系统依赖项\n */\n async getSystemDependency(id: number): Promise<{ data: SystemDependency }> {\n log('Getting system dependency details: %d', id);\n\n const result = await this.request<{ data: SystemDependency }>(\n `/admin/plugins/dependencies/${id}`,\n );\n log('System dependency details retrieved');\n return result;\n }\n\n /**\n * 创建系统依赖项\n * @param data 依赖项创建数据\n * @returns 创建的依赖项\n */\n async createSystemDependency(\n data: Omit<SystemDependency, 'id'>,\n ): Promise<{ data: SystemDependency }> {\n log('Creating system dependency: %O', data);\n\n const result = await this.request<{ data: 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<{ data: SystemDependency }> {\n log('Updating system dependency: %d, data: %O', id, data);\n\n const result = await this.request<{ data: SystemDependency }>(\n `/admin/plugins/dependencies/${id}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\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('删除系统依赖项: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/dependencies/${id}`,\n { method: 'DELETE' },\n );\n log('系统依赖项删除成功');\n return result;\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 { 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 notes?: 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// 部署选项\nexport interface DeploymentOption {\n installationMethod: string;\n installationDetails?: InstallationDetails;\n connection: ConnectionConfig;\n isRecommended?: boolean;\n notes?: 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 DiscoveryDocument {\n issuer: string;\n market_index_schema_version: number;\n resource_types_supported: string[];\n resource_endpoints: Record<string, string>;\n manifest_endpoint_template: string | Record<string, string>;\n support_locales: string[];\n response_types_supported: string[];\n authentication?: {\n schemes_supported: Array<'none' | 'apiKey' | 'oauth2'>;\n };\n api_documentation_url?: string;\n policy_url?: string;\n terms_of_service_url?: string;\n}\n\n// SDK 配置选项\nexport interface MarketSDKOptions {\n baseUrl?: string;\n defaultLocale?: string;\n apiKey?: string;\n}\n\n// 管理员 API 相关类型\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// 插件版本数据库模型\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\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 orderBy?: 'createdAt' | 'updatedAt' | 'installCount' | 'ratingAverage';\n order?: 'asc' | 'desc';\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// 更新插件版本参数\nexport interface PluginVersionUpdateParams {\n manifestUrl?: string;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n// 导出所有类型\nexport * from './common';\nexport * from './plugins';\nexport * from './admin';\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 notes?: 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 notes?: 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} "],"mappings":"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","names":["debug","debug","log","debug","debug","log","debug","debug","log","debug","log","debug","z","PluginTypeEnum","z","ConnectionTypeEnum","InstallationMethodEnum"]}
|
|
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/PluginAdminService.ts","../src/admin/services/SystemDependencyService.ts","../src/types/index.ts","../src/types/plugins.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 = options.baseUrl || 'https://market.lobehub.com/api';\n this.defaultLocale = options.defaultLocale || 'en-US';\n\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 ...(options.apiKey ? { Authorization: `Bearer ${options.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';\nimport { PluginAdminService, 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: PluginAdminService;\n\n /**\n * 系统依赖管理服务\n */\n readonly dependencies: SystemDependencyService;\n\n /**\n * 创建 MarketAdmin 实例\n * @param options SDK 配置选项\n */\n constructor(options: MarketSDKOptions = {}) {\n super(options);\n log('MarketAdmin instance created');\n\n // 初始化服务\n this.plugins = new PluginAdminService(options, this.headers);\n this.dependencies = new SystemDependencyService(options, this.headers);\n }\n} ","import debug from 'debug';\n\nimport { BaseSDK } from '../../core/BaseSDK';\nimport {\n AdminPluginParams,\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 PluginAdminService 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('PluginAdminService 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(`开始批量导入 ${manifests.length} 个清单`);\n if (ownerId) {\n log(`使用指定的所有者 ID: ${ownerId}`);\n }\n\n const response = await this.request<{ data: { 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(`批量导入完成: ${response.data.success} 个成功, ${response.data.failed} 个失败`);\n return response.data;\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPlugins(params: AdminPluginParams = {}): Promise<{ data: 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<{ data: Plugin[] }>(url);\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): Promise<{ data: Plugin & { versions: PluginVersion[] } }> {\n log('获取插件详情(管理员): %d', id);\n\n const result = await this.request<{ data: Plugin & { versions: PluginVersion[] } }>(\n `/admin/plugins/${id}`,\n );\n log('已获取插件(共 %d 个版本)', result.data.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<{ data: Plugin }> {\n log('更新插件: %d,数据: %O', id, data);\n\n const result = await this.request<{ data: Plugin }>(`/admin/plugins/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n });\n log('插件更新成功');\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('更新插件状态: %d 为 %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('插件状态更新成功');\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('删除插件: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/${id}`,\n { method: 'DELETE' },\n );\n log('插件删除成功');\n return result;\n }\n\n /**\n * 获取插件版本列表\n * @param pluginId 插件 ID\n * @returns 插件版本列表\n */\n async getPluginVersions(pluginId: number): Promise<{ data: PluginVersion[] }> {\n log('Getting plugin versions: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: PluginVersion[] }>(\n `/admin/plugins/${pluginId}/versions`,\n );\n\n log('Retrieved %d versions', result.data.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<{ data: PluginVersion }> {\n log('Getting version details: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ data: 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<{ data: PluginVersion }> {\n log('Creating new version: pluginId=%d', pluginId);\n\n const result = await this.request<{ data: PluginVersion }>(\n `/admin/plugins/${pluginId}/versions`,\n {\n method: 'POST',\n body: JSON.stringify(data),\n },\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<{ data: PluginVersion }> {\n log('Updating version: pluginId=%d, versionId=%d', pluginId, versionId);\n\n const result = await this.request<{ data: PluginVersion }>(\n `/admin/plugins/${pluginId}/versions/${versionId}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\n );\n log('插件版本更新成功');\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('删除版本: 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('插件版本删除成功');\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} ","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 * 处理插件系统依赖相关的管理功能\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<{ data: SystemDependency[] }> {\n log('Getting all system dependencies');\n\n const result = await this.request<{ data: SystemDependency[] }>(`/admin/plugins/dependencies`);\n log('Retrieved %d system dependencies', result.data.length);\n return result;\n }\n\n /**\n * 获取特定系统依赖项\n * @param id 依赖项 ID\n * @returns 系统依赖项\n */\n async getSystemDependency(id: number): Promise<{ data: SystemDependency }> {\n log('Getting system dependency details: %d', id);\n\n const result = await this.request<{ data: SystemDependency }>(\n `/admin/plugins/dependencies/${id}`,\n );\n log('System dependency details retrieved');\n return result;\n }\n\n /**\n * 创建系统依赖项\n * @param data 依赖项创建数据\n * @returns 创建的依赖项\n */\n async createSystemDependency(\n data: Omit<SystemDependency, 'id'>,\n ): Promise<{ data: SystemDependency }> {\n log('Creating system dependency: %O', data);\n\n const result = await this.request<{ data: 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<{ data: SystemDependency }> {\n log('Updating system dependency: %d, data: %O', id, data);\n\n const result = await this.request<{ data: SystemDependency }>(\n `/admin/plugins/dependencies/${id}`,\n {\n method: 'PUT',\n body: JSON.stringify(data),\n },\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('删除系统依赖项: %d', id);\n\n const result = await this.request<{ success: boolean; message: string }>(\n `/admin/plugins/dependencies/${id}`,\n { method: 'DELETE' },\n );\n log('系统依赖项删除成功');\n return result;\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 notes?: 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// 部署选项\nexport interface DeploymentOption {\n installationMethod: string;\n installationDetails?: InstallationDetails;\n connection: ConnectionConfig;\n isRecommended?: boolean;\n notes?: 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 DiscoveryDocument {\n issuer: string;\n market_index_schema_version: number;\n resource_types_supported: string[];\n resource_endpoints: Record<string, string>;\n manifest_endpoint_template: string | Record<string, string>;\n support_locales: string[];\n response_types_supported: string[];\n authentication?: {\n schemes_supported: Array<'none' | 'apiKey' | 'oauth2'>;\n };\n api_documentation_url?: string;\n policy_url?: string;\n terms_of_service_url?: string;\n}\n\n// SDK 配置选项\nexport interface MarketSDKOptions {\n baseUrl?: string;\n defaultLocale?: string;\n apiKey?: string;\n}\n\n// 管理员 API 相关类型\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// 插件版本数据库模型\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\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 orderBy?: 'createdAt' | 'updatedAt' | 'installCount' | 'ratingAverage';\n order?: 'asc' | 'desc';\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// 更新插件版本参数\nexport interface PluginVersionUpdateParams {\n manifestUrl?: string;\n isValidated?: boolean;\n meta?: Record<string, any>;\n}\n\n// 导出所有类型\nexport * from './common';\nexport * from './plugins';\nexport * from './admin';\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 notes?: 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 notes?: 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} "],"mappings":"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","names":["debug","debug","log","debug","debug","log","debug","log","debug","debug","debug","log","debug","debug","log","debug","log","debug","z","PluginTypeEnum","z","ConnectionTypeEnum","InstallationMethodEnum"]}
|