@lobehub/market-sdk 0.0.1

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/README.md ADDED
@@ -0,0 +1,167 @@
1
+ # @lobehub/market-sdk
2
+
3
+ LobeHub Market 的 JavaScript SDK,提供对插件市场 API 的简单访问。
4
+
5
+ ## 特性
6
+
7
+ - 使用原生 `fetch` API,无外部依赖
8
+ - 支持 TypeScript,提供完整类型定义
9
+ - 简单易用的 API 设计
10
+ - 支持 ESM 模块
11
+
12
+ ## 安装
13
+
14
+ ```bash
15
+ npm install @lobehub/market-sdk
16
+ ```
17
+
18
+ ## 用法
19
+
20
+ ### 基本使用
21
+
22
+ ```typescript
23
+ import { MarketSDK } from '@lobehub/market-sdk';
24
+
25
+ // 创建 SDK 实例
26
+ const market = new MarketSDK({
27
+ // 可选配置
28
+ baseUrl: 'https://market.lobehub.com/api', // 默认值
29
+ defaultLocale: 'zh-CN', // 默认值
30
+ });
31
+
32
+ // 获取服务发现文档
33
+ const discovery = await market.getDiscoveryDocument();
34
+ console.log(discovery);
35
+
36
+ // 获取插件列表
37
+ const plugins = await market.getPluginList({
38
+ page: 1,
39
+ pageSize: 10,
40
+ category: 'tools',
41
+ sort: 'installCount',
42
+ order: 'desc',
43
+ });
44
+ console.log(plugins);
45
+
46
+ // 获取插件清单
47
+ const manifest = await market.getPluginManifest('lobehub/web-search');
48
+ console.log(manifest);
49
+ ```
50
+
51
+ ### 认证
52
+
53
+ 对于需要管理员权限的操作,需要提供认证令牌:
54
+
55
+ ```typescript
56
+ // 创建时提供 API Key
57
+ const market = new MarketSDK({
58
+ apiKey: 'your-api-key',
59
+ });
60
+
61
+ // 或者稍后设置
62
+ market.setAuthToken('your-api-key');
63
+
64
+ // 导入插件清单 (需要管理员权限)
65
+ const result = await market.importManifests([
66
+ {
67
+ id: 'my-plugin',
68
+ name: 'My Plugin',
69
+ version: '1.0.0',
70
+ description: '一个示例插件',
71
+ // 其他清单字段...
72
+ }
73
+ ]);
74
+ console.log(result);
75
+ ```
76
+
77
+ ## API 参考
78
+
79
+ ### `MarketSDK`
80
+
81
+ 主要的 SDK 类
82
+
83
+ #### 构造函数
84
+
85
+ ```typescript
86
+ constructor(options?: MarketSDKOptions)
87
+ ```
88
+
89
+ 参数:
90
+ - `options.baseUrl`: API 基础 URL,默认为 'https://market.lobehub.com/api'
91
+ - `options.defaultLocale`: 默认语言,默认为 'zh-CN'
92
+ - `options.apiKey`: 可选的 API 认证密钥
93
+
94
+ #### 方法
95
+
96
+ ##### `getDiscoveryDocument()`
97
+
98
+ 获取市场服务发现文档。
99
+
100
+ ##### `getPluginList(params)`
101
+
102
+ 获取插件列表。
103
+
104
+ 参数:
105
+ - `params.page`: 页码,默认为 1
106
+ - `params.pageSize`: 每页数量,默认为 20
107
+ - `params.category`: 按分类筛选
108
+ - `params.tags`: 按标签筛选 (逗号分隔)
109
+ - `params.q`: 搜索关键词
110
+ - `params.sort`: 排序字段 ('installCount', 'createdAt', 'updatedAt', 'ratingAverage')
111
+ - `params.order`: 排序方向 ('asc' 或 'desc')
112
+ - `params.locale`: 语言,默认为构造函数中设置的值
113
+
114
+ ##### `getPluginManifest(identifier, locale?, version?)`
115
+
116
+ 获取插件清单。
117
+
118
+ 参数:
119
+ - `identifier`: 插件标识符 (必填)
120
+ - `locale`: 语言,可选,默认为构造函数中设置的值
121
+ - `version`: 版本号,可选,默认获取最新版本
122
+
123
+ ##### `importManifests(manifests, ownerId?)`
124
+
125
+ 导入插件清单 (需要管理员权限)。
126
+
127
+ 参数:
128
+ - `manifests`: 插件清单数组
129
+ - `ownerId`: 所有者 ID (可选)
130
+
131
+ ##### `setAuthToken(token)`
132
+
133
+ 设置认证令牌。
134
+
135
+ ##### `clearAuthToken()`
136
+
137
+ 清除认证令牌。
138
+
139
+ ## 类型
140
+
141
+ SDK 导出以下类型:
142
+
143
+ - `PluginType`
144
+ - `ConnectionType`
145
+ - `InstallationMethod`
146
+ - `SystemDependency`
147
+ - `ConnectionConfig`
148
+ - `DeploymentOption`
149
+ - `PluginCompatibility`
150
+ - `PluginItem`
151
+ - `PluginListResponse`
152
+ - `PluginManifest`
153
+ - `DiscoveryDocument`
154
+ - `MarketSDKOptions`
155
+
156
+ ## 兼容性
157
+
158
+ 此SDK使用了原生fetch API,适用于:
159
+ - 现代浏览器
160
+ - Node.js 18+
161
+ - Deno
162
+ - Bun
163
+ - 其他支持fetch API的运行时
164
+
165
+ ## 许可证
166
+
167
+ MIT
@@ -0,0 +1,188 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const PluginTypeEnum: z.ZodEnum<["lobe", "openai", "mcp"]>;
4
+ type PluginType = z.infer<typeof PluginTypeEnum>;
5
+ declare const ConnectionTypeEnum: z.ZodEnum<["http", "stdio"]>;
6
+ type ConnectionType = z.infer<typeof ConnectionTypeEnum>;
7
+ declare const InstallationMethodEnum: z.ZodEnum<["npm", "docker", "git", "binaryUrl", "manual", "none"]>;
8
+ type InstallationMethod = z.infer<typeof InstallationMethodEnum>;
9
+ interface SystemDependency {
10
+ name: string;
11
+ type?: string;
12
+ requiredVersion?: string;
13
+ checkCommand?: string;
14
+ installInstructions?: Record<string, string>;
15
+ versionParsingRequired?: boolean;
16
+ notes?: string;
17
+ }
18
+ interface ConnectionConfig {
19
+ type: string;
20
+ command?: string;
21
+ args?: string[];
22
+ url?: string;
23
+ }
24
+ interface DeploymentOption {
25
+ installationMethod: string;
26
+ installationDetails?: Record<string, any>;
27
+ connection: ConnectionConfig;
28
+ isRecommended?: boolean;
29
+ notes?: string;
30
+ systemDependencies?: SystemDependency[];
31
+ }
32
+ interface PluginCompatibility {
33
+ platforms?: string[];
34
+ minAppVersion?: string;
35
+ maxAppVersion?: string;
36
+ }
37
+ interface PluginItem {
38
+ identifier: string;
39
+ version: string;
40
+ isLatest: boolean;
41
+ createdAt: string;
42
+ type: PluginType;
43
+ manifestUrl?: string;
44
+ manifestVersion: string;
45
+ icon?: string;
46
+ author?: string;
47
+ homepage?: string;
48
+ category?: string;
49
+ connectionType?: ConnectionType;
50
+ compatibility?: PluginCompatibility;
51
+ capabilities: {
52
+ tools: boolean;
53
+ prompts: boolean;
54
+ resources: boolean;
55
+ };
56
+ displayName: string;
57
+ description: string;
58
+ tags?: string[];
59
+ authRequirement?: string;
60
+ isInstallable?: boolean;
61
+ }
62
+ interface PluginListResponse {
63
+ items: PluginItem[];
64
+ totalCount: number;
65
+ currentPage: number;
66
+ pageSize: number;
67
+ totalPages: number;
68
+ categories: string[];
69
+ tags: string[];
70
+ }
71
+ interface PluginManifest {
72
+ id: string;
73
+ name: string;
74
+ version: string;
75
+ description: string;
76
+ category?: string;
77
+ tags?: string[];
78
+ author?: {
79
+ name: string;
80
+ url?: string;
81
+ };
82
+ homepage?: string;
83
+ icon?: string;
84
+ capabilities?: {
85
+ tools?: boolean;
86
+ prompts?: boolean;
87
+ resources?: boolean;
88
+ };
89
+ deploymentOptions?: DeploymentOption[];
90
+ compatibility?: PluginCompatibility;
91
+ }
92
+ interface DiscoveryDocument {
93
+ issuer: string;
94
+ market_index_schema_version: number;
95
+ resource_types_supported: string[];
96
+ resource_endpoints: Record<string, string>;
97
+ manifest_endpoint_template: string | Record<string, string>;
98
+ support_locales: string[];
99
+ response_types_supported: string[];
100
+ authentication?: {
101
+ schemes_supported: Array<'none' | 'apiKey' | 'oauth2'>;
102
+ };
103
+ api_documentation_url?: string;
104
+ policy_url?: string;
105
+ terms_of_service_url?: string;
106
+ }
107
+ interface MarketSDKOptions {
108
+ baseUrl?: string;
109
+ defaultLocale?: string;
110
+ apiKey?: string;
111
+ }
112
+
113
+ /**
114
+ * LobeHub Market SDK 客户端
115
+ */
116
+ declare class MarketSDK {
117
+ private baseUrl;
118
+ private defaultLocale;
119
+ private discoveryDoc?;
120
+ private headers;
121
+ /**
122
+ * 创建 MarketSDK 实例
123
+ * @param options SDK 配置选项
124
+ */
125
+ constructor(options?: MarketSDKOptions);
126
+ /**
127
+ * 发送请求并处理响应
128
+ * @param url 请求URL
129
+ * @param options fetch选项
130
+ * @returns 响应数据
131
+ */
132
+ private request;
133
+ /**
134
+ * 构建查询字符串
135
+ * @param params 查询参数
136
+ * @returns 查询字符串
137
+ */
138
+ private buildQueryString;
139
+ /**
140
+ * 获取市场服务发现文档
141
+ * @returns 服务发现文档
142
+ */
143
+ getDiscoveryDocument(): Promise<DiscoveryDocument>;
144
+ /**
145
+ * 获取插件列表
146
+ * @param params 查询参数
147
+ * @returns 插件列表响应
148
+ */
149
+ getPluginList(params?: {
150
+ page?: number;
151
+ pageSize?: number;
152
+ category?: string;
153
+ tags?: string;
154
+ q?: string;
155
+ sort?: 'installCount' | 'createdAt' | 'updatedAt' | 'ratingAverage';
156
+ order?: 'asc' | 'desc';
157
+ locale?: string;
158
+ }): Promise<PluginListResponse>;
159
+ /**
160
+ * 获取插件清单
161
+ * @param identifier 插件标识符
162
+ * @param locale 语言
163
+ * @param version 版本
164
+ * @returns 插件清单
165
+ */
166
+ getPluginManifest(identifier: string, locale?: string, version?: string): Promise<PluginManifest>;
167
+ /**
168
+ * 导入插件清单 (需要管理员权限)
169
+ * @param manifests 插件清单数组
170
+ * @param ownerId 所有者ID
171
+ * @returns 导入结果
172
+ */
173
+ importManifests(manifests: PluginManifest[], ownerId?: number): Promise<{
174
+ success: number;
175
+ failed: number;
176
+ }>;
177
+ /**
178
+ * 设置认证令牌
179
+ * @param token 认证令牌
180
+ */
181
+ setAuthToken(token: string): void;
182
+ /**
183
+ * 清除认证令牌
184
+ */
185
+ clearAuthToken(): void;
186
+ }
187
+
188
+ export { type ConnectionConfig, type ConnectionType, ConnectionTypeEnum, type DeploymentOption, type DiscoveryDocument, type InstallationMethod, InstallationMethodEnum, MarketSDK, type MarketSDKOptions, type PluginCompatibility, type PluginItem, type PluginListResponse, type PluginManifest, type PluginType, PluginTypeEnum, type SystemDependency, MarketSDK as default };
package/dist/index.mjs ADDED
@@ -0,0 +1,129 @@
1
+ // src/types.ts
2
+ import { z } from "zod";
3
+ var PluginTypeEnum = z.enum(["lobe", "openai", "mcp"]);
4
+ var ConnectionTypeEnum = z.enum(["http", "stdio"]);
5
+ var InstallationMethodEnum = z.enum([
6
+ "npm",
7
+ "docker",
8
+ "git",
9
+ "binaryUrl",
10
+ "manual",
11
+ "none"
12
+ ]);
13
+
14
+ // src/market-sdk.ts
15
+ var MarketSDK = class {
16
+ /**
17
+ * 创建 MarketSDK 实例
18
+ * @param options SDK 配置选项
19
+ */
20
+ constructor(options = {}) {
21
+ this.baseUrl = options.baseUrl || "https://market.lobehub.com/api";
22
+ this.defaultLocale = options.defaultLocale || "zh-CN";
23
+ this.headers = {
24
+ "Content-Type": "application/json",
25
+ ...options.apiKey ? { Authorization: `Bearer ${options.apiKey}` } : {}
26
+ };
27
+ }
28
+ /**
29
+ * 发送请求并处理响应
30
+ * @param url 请求URL
31
+ * @param options fetch选项
32
+ * @returns 响应数据
33
+ */
34
+ async request(url, options = {}) {
35
+ const response = await fetch(`${this.baseUrl}${url}`, {
36
+ ...options,
37
+ headers: {
38
+ ...this.headers,
39
+ ...options.headers
40
+ }
41
+ });
42
+ if (!response.ok) {
43
+ throw new Error(`\u8BF7\u6C42\u5931\u8D25: ${response.status} ${response.statusText}`);
44
+ }
45
+ return response.json();
46
+ }
47
+ /**
48
+ * 构建查询字符串
49
+ * @param params 查询参数
50
+ * @returns 查询字符串
51
+ */
52
+ buildQueryString(params) {
53
+ const query = Object.entries(params).filter(([_, value]) => value !== void 0 && value !== null).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`).join("&");
54
+ return query ? `?${query}` : "";
55
+ }
56
+ /**
57
+ * 获取市场服务发现文档
58
+ * @returns 服务发现文档
59
+ */
60
+ async getDiscoveryDocument() {
61
+ if (this.discoveryDoc) return this.discoveryDoc;
62
+ this.discoveryDoc = await this.request("/market/.well-known/discovery");
63
+ return this.discoveryDoc;
64
+ }
65
+ /**
66
+ * 获取插件列表
67
+ * @param params 查询参数
68
+ * @returns 插件列表响应
69
+ */
70
+ async getPluginList(params = {}) {
71
+ const locale = params.locale || this.defaultLocale;
72
+ const queryParams = { ...params, locale };
73
+ const queryString = this.buildQueryString(queryParams);
74
+ return this.request(`/v1/plugins${queryString}`);
75
+ }
76
+ /**
77
+ * 获取插件清单
78
+ * @param identifier 插件标识符
79
+ * @param locale 语言
80
+ * @param version 版本
81
+ * @returns 插件清单
82
+ */
83
+ async getPluginManifest(identifier, locale, version) {
84
+ const localeParam = locale || this.defaultLocale;
85
+ const params = { locale: localeParam };
86
+ if (version) {
87
+ params.version = version;
88
+ }
89
+ const queryString = this.buildQueryString(params);
90
+ return this.request(`/v1/plugins/${identifier}/manifest${queryString}`);
91
+ }
92
+ /**
93
+ * 导入插件清单 (需要管理员权限)
94
+ * @param manifests 插件清单数组
95
+ * @param ownerId 所有者ID
96
+ * @returns 导入结果
97
+ */
98
+ async importManifests(manifests, ownerId) {
99
+ const response = await this.request("/v1/admin/plugins/import", {
100
+ method: "POST",
101
+ body: JSON.stringify({
102
+ manifests,
103
+ ownerId
104
+ })
105
+ });
106
+ return response.data;
107
+ }
108
+ /**
109
+ * 设置认证令牌
110
+ * @param token 认证令牌
111
+ */
112
+ setAuthToken(token) {
113
+ this.headers.Authorization = `Bearer ${token}`;
114
+ }
115
+ /**
116
+ * 清除认证令牌
117
+ */
118
+ clearAuthToken() {
119
+ delete this.headers.Authorization;
120
+ }
121
+ };
122
+ export {
123
+ ConnectionTypeEnum,
124
+ InstallationMethodEnum,
125
+ MarketSDK,
126
+ PluginTypeEnum,
127
+ MarketSDK as default
128
+ };
129
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/market-sdk.ts"],"sourcesContent":["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\n// 部署选项\nexport interface DeploymentOption {\n installationMethod: string;\n installationDetails?: Record<string, any>;\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 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 displayName: string;\n description: string;\n tags?: string[];\n authRequirement?: string;\n isInstallable?: boolean;\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 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\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} ","import {\n DiscoveryDocument,\n MarketSDKOptions,\n PluginItem,\n PluginListResponse,\n PluginManifest,\n} from './types';\n\n/**\n * LobeHub Market SDK 客户端\n */\nexport class MarketSDK {\n private baseUrl: string;\n private defaultLocale: string;\n private discoveryDoc?: DiscoveryDocument;\n private headers: Record<string, string>;\n\n /**\n * 创建 MarketSDK 实例\n * @param options SDK 配置选项\n */\n constructor(options: MarketSDKOptions = {}) {\n this.baseUrl = options.baseUrl || 'https://market.lobehub.com/api';\n this.defaultLocale = options.defaultLocale || 'zh-CN';\n this.headers = {\n 'Content-Type': 'application/json',\n ...(options.apiKey ? { Authorization: `Bearer ${options.apiKey}` } : {}),\n };\n }\n\n /**\n * 发送请求并处理响应\n * @param url 请求URL\n * @param options fetch选项\n * @returns 响应数据\n */\n private async request<T>(url: string, options: RequestInit = {}): Promise<T> {\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 throw new Error(`请求失败: ${response.status} ${response.statusText}`);\n }\n\n return response.json() as Promise<T>;\n }\n\n /**\n * 构建查询字符串\n * @param params 查询参数\n * @returns 查询字符串\n */\n private 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 * @returns 服务发现文档\n */\n async getDiscoveryDocument(): Promise<DiscoveryDocument> {\n if (this.discoveryDoc) return this.discoveryDoc;\n\n this.discoveryDoc = await this.request<DiscoveryDocument>('/market/.well-known/discovery');\n return this.discoveryDoc;\n }\n\n /**\n * 获取插件列表\n * @param params 查询参数\n * @returns 插件列表响应\n */\n async getPluginList(params: {\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 } = {}): Promise<PluginListResponse> {\n const locale = params.locale || this.defaultLocale;\n const queryParams = { ...params, locale };\n const queryString = this.buildQueryString(queryParams);\n\n return this.request<PluginListResponse>(`/v1/plugins${queryString}`);\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 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 return this.request<PluginManifest>(`/v1/plugins/${identifier}/manifest${queryString}`);\n }\n\n /**\n * 导入插件清单 (需要管理员权限)\n * @param manifests 插件清单数组\n * @param ownerId 所有者ID\n * @returns 导入结果\n */\n async importManifests(manifests: PluginManifest[], ownerId?: number): Promise<{ success: number; failed: number }> {\n const response = await this.request<{ data: { success: number; failed: number } }>('/v1/admin/plugins/import', {\n method: 'POST',\n body: JSON.stringify({\n manifests,\n ownerId,\n }),\n });\n\n return response.data;\n }\n\n /**\n * 设置认证令牌\n * @param token 认证令牌\n */\n setAuthToken(token: string): void {\n this.headers.Authorization = `Bearer ${token}`;\n }\n\n /**\n * 清除认证令牌\n */\n clearAuthToken(): void {\n delete this.headers.Authorization;\n }\n} "],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@lobehub/market-sdk",
3
+ "version": "0.0.1",
4
+ "description": "LobeHub Market JavaScript SDK",
5
+ "keywords": [
6
+ "lobehub",
7
+ "market",
8
+ "sdk",
9
+ "plugins"
10
+ ],
11
+ "homepage": "https://github.com/lobehub/lobehub-market#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/lobehub/lobehub-market/issues"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/lobehub/lobehub-market.git"
18
+ },
19
+ "license": "MIT",
20
+ "author": "LobeHub",
21
+ "main": "dist/index.mjs",
22
+ "module": "dist/index.mjs",
23
+ "types": "dist/index.d.ts",
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsup",
29
+ "dev": "tsup --watch",
30
+ "prepublishOnly": "npm run build"
31
+ },
32
+ "devDependencies": {
33
+ "tsup": "^8.4.0",
34
+ "typescript": "^5.8.3",
35
+ "zod": "^3.24.4"
36
+ },
37
+ "peerDependencies": {
38
+ "zod": "^3.24.4"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public",
42
+ "registry": "https://registry.npmjs.org"
43
+ }
44
+ }