@asteby/metacore-市场
元生态系统的SDK市场——运输不可知枢纽 分类 + 本地 Ops 内核客户端、 React 查询钩和无头 UI 每个主机应用共享的原始(Ops,链接,未来应用).
盒子里的东西
src/
client/ # HubClient (catalog + install initiation)
# OpsClient (install/upgrade/uninstall against local kernel)
# types + manifest normalization (v2 ⇆ v3) + diff helpers
hooks/ # React Query wrappers: useCatalog, useAddonDetail,
# useInstalledAddons, useInstallAddon (chained 2-step),
# useUninstallAddon, useUpgradeAddon
components/ # MarketplaceCatalog, AddonCard, AddonDetailPanel,
# InstallConfirmModal, InstalledAddonsList, PermissionsDiff
providers/ # MarketplaceProvider (wires hub + ops + labels into context)
快速启动
import {
MarketplaceProvider,
createHubClient,
createOpsClient,
createFetchFetcher,
MarketplaceCatalog,
} from '@asteby/metacore-marketplace'
const hubFetcher = createFetchFetcher({
baseUrl: 'https://hub.metacore.dev',
headers: () => ({ authorization: `Bearer ${getHubToken()}` }),
})
const opsFetcher = createFetchFetcher({
baseUrl: '/api', // your own ops/link API base
headers: () => ({ authorization: `Bearer ${getAccessToken()}` }),
})
const hub = createHubClient({ fetcher: hubFetcher })
const ops = createOpsClient({ fetcher: opsFetcher })
export function MarketplacePage() {
return (
<MarketplaceProvider hub={hub} ops={ops} organizationId={currentOrgId}>
<MarketplaceCatalog onSelectAddon={(a) => navigate(`/marketplace/${a.key}`)} />
</MarketplaceProvider>
)
}
提供者模式
镜像 @asteby/metacore-app-providers ——消费电线运输
一次在应用根,每个钩/组件都从上下文读取。 这个
包件本身的船 零全球状态.
hub:目录阅读器 + 安装发起器(对公共枢纽的跟踪).ops:生命周期作家(跟随主机本地内核).organizationId: 需要——安装请求携带.labels:可选的i18n 覆盖.
特性 v2 + v3
市场在生产方面已经有两种明显的形态。 这个 软件包曝光 :
RawManifest(单位:千美元)ManifestV2 | ManifestV3() 受歧视的结合 赫德还来.Manifest常规形状:capabilities + permissions崩溃 将原列表与原列表合并raw有效载数 保留了下来.
使用 normalizeManifest() 每个版本显示一次; 通过结果
改为 PermissionsDiff 财务报告和审定财务报表 InstallConfirmModal。钩子接受
正常状态直接显示.
同意规则
根据内核安全政策,任何能力增加或修改
在版本 REQUIRES 之间,升级时重新同意的提示。 帮手
diffRequiresConsent(diffPermissions(current, next)) 返回时 true 何时
就是这样.. InstallConfirmModal 已在内部使用.
尾风 v4 接线
遵循SDK规则 @source 声明
(单位:千美元)参考文献),消费者 MUST 包含此包的来源
因此组件所使用的工具类
在捆绑地:
/* app.css */
@import 'tailwindcss';
@source "../../node_modules/@asteby/metacore-marketplace/dist";
跳过这个和你的 MarketplaceCatalog 将变成无型.
同伴依赖关系
react >= 18react-dom >= 18@tanstack/react-query >= 5@asteby/metacore-app-providers ^7(可选的——只有您想要PlatformConfigProvider驱动市场颜色的品牌变量)
组件使用纯 Tailwind 类加运出 CSS 变量
以 @asteby/metacore-app-providers (单位:千美元)--primary, (中文(简体) ), --background, (中文(简体) ),
--border(中文(简体) ). 他们不拉 @asteby/metacore-ui 所以任何主机
更喜欢不同的设计系统仍然可以使用目录,不用目录
额外的道具.
消费者(计划)
- 行动 —— 说
/marketplace浏览 + 为 org 管理员安装. - 链接 —— 说
/integrations显示与 流程运行时工具登记册. - 管道预设 UI ——通过本包预装的捆绑安装 原始人(下一步).