@corva/chat-core

中文文档
0.1.19发布于 2026/11/11UNLICENSEDTypeScriptES Module近 30 天下载 4422

Corva Team Chat的平台不可知核心,由网络和移动应用程序共享

中文使用文档
文档目录6 节
  1. 规则
  2. 设置
  3. 平台适配器
  4. 发展
  5. 在应用程序中尝试本地构建
  6. 出版

@corva/聊天核心

Corva Team Chat 的平台-不可知核心,由 网络前端 财务报告和审定财务报表 corva- react-native-app (英语)。 。 。 .

它持有所有不是UI的东西:Revolt/Stoat API和socket客户端,聊天商店,以及 $$CORVA:: 信件有线格式。 每个应用程序都会在它上面做自己的UI.

规则

  • 无平台环球. 类型环境是 es2022 只有,没有DOM或节点类型。 唯一一个 允许环球是定时器, console 财务报告和审定财务报表 requestAnimationFrame 已声明 src/platform.d.ts 财务报告和审定财务报表 src/raf.d.ts。 。 。 . fetch, (中文(简体) ), WebSocket, (中文(简体) ), 存储,通知和app状态事件由主机应用程序通过适配器注入.
  • 没有反应. 存储使用 zustand/vanilla每个应用程序都用自己的钩子包裹它们.
  • 无用户界面依赖性 (单位:千美元)@corva/ui, MUI, 反应原生).

运行时间依赖性也必须通过 main 字段:移动应用程序运行 Metro 软件包 exports 关闭,这就是为什么 uuid 仅停留在v11(v12+)上 exports) (中文(简体) ).

主机必须提供全球 crypto.getRandomValues 页:1 uuid:浏览器有它,移动 应用程序安装到 polyfillWebCrypto() 从 expo-standard-web-crypto 在其根布局中.

林特和打字检查执行这些规则.

设置

打电话 configureChat(host) 一旦在应用启动, 在触摸任何商店之前, 然后 ensureChatSession(corvaUser) 以 :

import { configureChat, ensureChatSession } from '@corva/chat-core';

configureChat({
  apiUrl, // Revolt REST, e.g. https://stoat.corva.ai/api
  wsUrl, // Revolt events, e.g. wss://stoat.corva.ai/ws
  platform, // ChatPlatform, see below
  storage, // KeyValueStorage: localStorage on web
  corvaApi, // { get, post } against corva-api with the Corva JWT
  appState, // { isHidden, isInactive, subscribe, onTerminate? }
  dates, // { startOfTomorrowAt(hour, now) } in the user's timezone
  notifier, // optional { showIncomingMessage, onMessageSent, onLogout }
});

await ensureChatSession(corvaUser);
主办成员网页原生反应
storagelocalStorageMMKV,或水合模版地图
corvaApiapiCore 编号 : jsonApi (单位:千美元)get 重复数组键)应用程序 ApiClient
appStatevisibilityState, (中文(简体) ), hasFocus(), (中文(简体) ), pagehideAppState (单位:千美元)background 隐藏数)
datesmoment 使用时区默认值date-fns 在设备时区
notifier浏览器通知 + 声音, 通知提示, favicon推/当地通知、徽章

仓库是 zustand/vanilla 库存(roomStore, (中文(简体) ), messageStore(中文(简体) ). React Apps 包装它们:

import { useStore } from 'zustand';
import { roomStore } from '@corva/chat-core';

export const useRoomStore = <T>(selector: (state: ReturnType<typeof roomStore.getState>) => T) =>
  useStore(roomStore, selector);

平台适配器

ChatPlatform (单位:千美元)src/platform/types.ts)是东道主的运输部分,也是由下列人员直接取走的: createRevoltAPI 财务报告和审定财务报表 createRevoltSocket数字 :

成员网页原生反应
fetch(url, init) => fetch(url, init)不变
createWebSocketurl => new WebSocket(url)不变
createUploadBodyFormData 与 FileFormData 与 { uri, name, type }
subscribeReconnectHintsonline + 键 visibilitychange网络信息+ AppState active

typecheck/browserPlatform.ts 是一个只编译的参考网页适配器(平台和app状态),可以证明浏览器API适配.

发展

nvm use
yarn install
yarn test        # vitest, node environment
yarn lint        # eslint + prettier
yarn typecheck
yarn build       # tsup → dist/ (ESM + .d.ts)

在应用程序中尝试本地构建

yarn build && npx yalc publish      # in this repo
npx yalc add @corva/chat-core       # in the consuming app

出版

npm version patch   # or minor / major
npm publish         # prepublishOnly runs lint, typecheck, tests, build and package checks
git push --follow-tags

在应用程序中测试分支的加那利建筑 :

npm version 0.0.0-$(git rev-parse --short HEAD) --no-git-tag-version
npm publish --tag canary && git checkout package.json

版本与发布记录

@corva/chat-core 共发布 20 个版本,首次发布于 2026/09/24;过去 12 个月发布了 20 个版本。

版本发布日期距今
0.1.19latest2026/11/11今天
0.1.182026/11/101 天前
0.1.172026/11/101 天前
0.1.162026/11/091 天前
0.1.152026/11/091 天前
0.1.142026/10/2912 天前

关于 @corva/chat-core 的常见问题

@corva/chat-core 是什么?

Corva Team Chat的平台不可知核心,由网络和移动应用程序共享

如何安装 @corva/chat-core?

在项目目录运行 npm install @corva/chat-core,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zustand(^4.5.0 || ^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@corva/chat-core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@corva/chat-core 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@corva/chat-core 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@corva/chat-core 可以商用吗?

@corva/chat-core 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@corva/chat-core 的下载量有多少?

根据 npm 官方下载统计,@corva/chat-core 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,422 次,日均约 147 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@corva/chat-core 还在维护吗?

最新版本 0.1.19 发布于 2026/11/11(今天);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/09/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。