@nexus-kit/sdk
v0.3.3
Published
NexusKit TypeScript SDK for Product Sessions, installations, platform RPCs, and ProductUser cloud sync.
Readme
@nexus-kit/sdk
The NexusKit TypeScript client SDK for Product Sessions, installations, platform RPCs, and opt-in ProductUser cloud sync.
npm install @nexus-kit/sdk已登录产品前端使用 Product Session 读取当前账号投影:
import { ProductPlatformClient } from '@nexus-kit/sdk';
const client = new ProductPlatformClient({
baseUrl: 'https://faas.fatclaw.com',
productId: 'example-product',
sessionTokenProvider: () => productSessionStore.get()
});
const account = await client.getCurrentAccount({ environmentId: 'production' });account.linkedProviders[].status 表示关联事实,readiness 表示该 Provider 当前能否继续交互。投影不包含 Provider subject、令牌、凭证、内部身份 ID 或原始 Provider payload。
记录并精确查询产品法律文件发布版本:
const privacy = {
documentType: 'privacy_policy' as const,
documentVersion: '2026-08-09',
locale: 'zh-CN',
publicationId: 'privacy-2026-08-09-zh-CN',
contentDigest: 'sha256:<64-lowercase-hex>'
};
await client.recordLegalAcceptance({
environmentId: 'production',
operationId: crypto.randomUUID(),
acquisitionSurface: 'sign_up',
documents: [privacy]
});
const state = await client.getCurrentLegalAcceptance({
environmentId: 'production',
requirements: [privacy]
});acceptedAt 是 NexusKit 服务端时间;clientAcknowledgedAt 仅作上下文。NexusKit 不托管正文,也不替产品判断是否需要同意。完整治理规则见仓库 docs/adr/0019-product-legal-acceptance-evidence.md。
Cloud-sync collection adapters receive a CloudSyncLocalScope on every read and write. Persist records under scope.scopeKey so an account switch cannot expose or overwrite another ProductUser's local data. Route user edits through CloudSyncManager.enqueueUpsert or enqueueDelete; the manager journals the local mutation before changing product data and promotes it to the durable outbox after the adapter succeeds.
Call manager.dispose() when the owning application context is destroyed so scheduled retry timers are released. See docs/cloud-sync-adoption.md in the NexusKit repository for the complete integration and recovery contract.
