npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nestos/kanban-ui

v0.5.4

Published

Portable DOM Kanban UI with an injected local or remote KanbanClient.

Readme

@nestos/kanban-ui

独立的原生 DOM 看板界面。宿主注入本地或远程 KanbanClient,以及文案、图标和导航;UI 不实现后台存储、执行调度、恢复或授权。

npm install @nestos/kanban-ui @nestos/kanban @nestos/ui-common

使用

import {mountKanban} from '@nestos/kanban-ui';
import '@nestos/kanban-ui/style.css';

const view = await mountKanban(container, {
    service,
    presentation: {
        text: (key, values) => translations(key, values),
        icons: {refreshView, more, close},
        log: logMetadata,
        referenceUrl: path => resourceUrl(path),
    },
    selected: path => saveNavigation(path),
    openSession: id => openResource(id),
});
await view.open({boardId: 'work'});
await view.dispose();

文案 key 不带 kanban. 前缀;图标为可信宿主提供的 SVG/HTML。主题通过 --kanban-* CSS 变量设置;NestOS 在适配样式中映射原有主题变量。所有呈现配置按实例注入,不存在全局语言、当前宿主或跨实例回调。UI 不导入 NestOS、common 或 vfs-ui。资源活动为可选能力;未接入时不显示执行筛选,也不安装活动轮询。接入时可见且没有未保存输入才轮询,销毁后停止;通知不会覆盖草稿。错误只展示安全错误码与宿主文案,不输出正文或完整请求。

来源发现仅通过内置 apply-discovery 提交受校验的变更与检查点,二者同事务保存。宿主不提供可变 reducer 扩展。来源可声明 system/project/collection scope;历史 projectId 仍兼容。库不提供内部 mechanisms 入口。消费者直接从 /contracts 导入 DTO 和 KanbanClient,不经过应用包转出。

执行桥不解释模型或业务。执行桥和来源扫描的 tick()(兼容 scan())由宿主显式驱动;扫描 quiesce/dispose 拒绝新准入并排空已接纳操作。只有注入 subscribe 才接收唤醒。executionReference 将实际执行 ID 映射为宿主命名空间,不在核心写死 NestOS 引用。ConditionalKanbanStore 只要求 query/transaction 与可选正文资产端口,适配器负责授权连接及 unknown 写入核对,不在 Store 内盲重试。

模块边界

  • 唯一运行时界面入口为包根;样式通过 @nestos/kanban-ui/style.css 显式加载。
  • 只从 @nestos/kanban/contracts 引入 DTO 与无 I/O 的纯函数,不导入后台根入口、storage、runtime 或 integration。
  • ui-common 提供通用标题栏;窗口、主题、翻译、会话导航及应用通知按实例注入。
  • Markdown 渲染器仅在详情需要时加载;显式目录路由不预读当前身份,创建看板时再读取,事项详情按需加载身份用于操作展示。
  • getBoardSnapshot 可注入宿主已有的只读看板摘要,用于工作区、决策和日志页签导航;UI 复制后使用,目标列表仍由服务端授权读取。事件失效或手动刷新不复用该投影;没有投影时,目录与目标列表并行读取。身份仅在事项详情和创建看板时按需读取,兼容无 initialResource 的独立自动选择入口。
  • KanbanClient 可以是本地服务,也可以是 HTTP/RPC 客户端;UI 不解释网络地址、认证凭据或宿主执行器。
  • 远程失败保留具体安全错误码和草稿;只在权威目录确认资源失效后调用 setResourceUnavailable。
  • 销毁释放监听、轮询及宿主插槽;只隐藏的视图保留草稿并暂停活动补读。

独立开发与发布

pnpm install
pnpm typecheck
pnpm test
pnpm build
pnpm pack

类型与 UI 行为测试使用公开看板包作为本地客户端;远程接入测试只提供 RPC 形态的客户端对象。发布包只包含 dist、README 与许可证,不包含 NestOS 或后台源码。工作区的源码联调和本地快照分别按 NestOS 的标准独立库机制接入。

交付操作可由宿主通过 KanbanItemOperation.group 声明展示分组。同组只展示当前执行阶段,保留该阶段原始会话、确认、取消和跳过目标;runAction 可将恢复按钮路由到专用恢复动作。取消/跳过影响预览按组汇总,提交仍携带完整原始操作身份。未提供分组的宿主沿用依赖连通组展示。业务顺序和准入由宿主决定。

任务、交付与详情读取使用各自的状态展示。completion 为 waived 或 mixed 时明确标注验收豁免;自动流程存在错误或未知步骤时展示暂停,流程结束不替代各步骤回执。关联会话或操作面板读取失败只在对应区域显示安全原因和“重试加载”,不改写任务状态,重试不会派发或重放执行。宿主提供 readError.*、retryRead、completionOutcome.*、automaticBlocked 和 automaticFinished 文案。