JSPM

  • Created
  • Published
  • Downloads 28734
  • Score
    100M100P100Q133453F
  • License MIT

LobeHub Market JavaScript SDK

Package Exports

  • @lobehub/market-sdk
  • @lobehub/market-sdk/dist/index.mjs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@lobehub/market-sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@lobehub/market-sdk

LobeHub Market 的 JavaScript SDK,提供对插件市场 API 的简单访问。

特性

  • 使用原生 fetch API,无外部依赖
  • 支持 TypeScript,提供完整类型定义
  • 简单易用的 API 设计
  • 支持 ESM 模块

安装

npm install @lobehub/market-sdk

用法

基本使用

import { MarketSDK } from '@lobehub/market-sdk';

// 创建 SDK 实例
const market = new MarketSDK({
  // 可选配置
  baseUrl: 'https://market.lobehub.com/api', // 默认值
  defaultLocale: 'zh-CN', // 默认值
});

// 获取服务发现文档
const discovery = await market.getDiscoveryDocument();
console.log(discovery);

// 获取插件列表
const plugins = await market.getPluginList({
  page: 1,
  pageSize: 10,
  category: 'tools',
  sort: 'installCount',
  order: 'desc',
});
console.log(plugins);

// 获取插件清单
const manifest = await market.getPluginManifest('lobehub/web-search');
console.log(manifest);

认证

对于需要管理员权限的操作,需要提供认证令牌:

// 创建时提供 API Key
const market = new MarketSDK({
  apiKey: 'your-api-key',
});

// 或者稍后设置
market.setAuthToken('your-api-key');

// 导入插件清单 (需要管理员权限)
const result = await market.importManifests([
  {
    id: 'my-plugin',
    name: 'My Plugin',
    version: '1.0.0',
    description: '一个示例插件',
    // 其他清单字段...
  },
]);
console.log(result);

API 参考

MarketSDK

主要的 SDK 类

构造函数

constructor(options?: MarketSDKOptions)

参数:

  • options.baseUrl: API 基础 URL,默认为 'https://market.lobehub.com/api'
  • options.defaultLocale: 默认语言,默认为 'zh-CN'
  • options.apiKey: 可选的 API 认证密钥

方法

getDiscoveryDocument()

获取市场服务发现文档。

getPluginList(params)

获取插件列表。

参数:

  • params.page: 页码,默认为 1
  • params.pageSize: 每页数量,默认为 20
  • params.category: 按分类筛选
  • params.tags: 按标签筛选 (逗号分隔)
  • params.q: 搜索关键词
  • params.sort: 排序字段 ('installCount', 'createdAt', 'updatedAt', 'ratingAverage')
  • params.order: 排序方向 ('asc' 或 'desc')
  • params.locale: 语言,默认为构造函数中设置的值
getPluginManifest(identifier, locale?, version?)

获取插件清单。

参数:

  • identifier: 插件标识符 (必填)
  • locale: 语言,可选,默认为构造函数中设置的值
  • version: 版本号,可选,默认获取最新版本
importManifests(manifests, ownerId?)

导入插件清单 (需要管理员权限)。

参数:

  • manifests: 插件清单数组
  • ownerId: 所有者 ID (可选)
setAuthToken(token)

设置认证令牌。

clearAuthToken()

清除认证令牌。

类型

SDK 导出以下类型:

  • PluginType
  • ConnectionType
  • InstallationMethod
  • SystemDependency
  • ConnectionConfig
  • DeploymentOption
  • PluginCompatibility
  • PluginItem
  • PluginListResponse
  • PluginManifest
  • DiscoveryDocument
  • MarketSDKOptions

兼容性

此SDK使用了原生fetch API,适用于:

  • 现代浏览器
  • Node.js 18+
  • Deno
  • Bun
  • 其他支持fetch API的运行时

许可证

MIT