@fayz-ai/pos

中文文档
0.27.18发布于 2026/11/11MITTypeScriptES Module近 30 天下载 8987

Fayz SDK POS layer — the operator surface: one page, touch and keyboard, parameterised per vertical

原始使用文档
文档目录4 节
  1. What's inside
  2. Install
  3. Usage
  4. Part of the Fayz SDK

@fayz-ai/pos

The operator surface: one page, touch and keyboard at the same time.

npm license

Status: alpha — under active development, APIs will change.

@fayz-ai/admin is the shell for the back office. @fayz-ai/pos is the shell for the shift: the screen a waiter uses at the Saturday rush and a cashier uses with the muscle memory of ten years on a Bematech terminal. Same contract, opposite principles — no rail, no breadcrumb, no deep navigation, no table density. Everything the operator needs is on one page, because leaving that page mid-service is the failure this package exists to prevent.

It is not a restaurant package. A restaurant has tables and tabs that stay open for three hours; a bookstore has a counter and a sale that is born and dies at the register. Both are the same screen with a different PosAppConfig — the screen never reads "mesa", it reads what the config called the thing.

What's inside

  • App config — PosAppConfig: the position surface (floor / list / none), the sale cycle (open_tab / immediate), vocabulary, action bar, payment methods
  • The one page — PosScreen: position map, live ticket, catalogue, fixed action bar, open-tickets dock
  • Ticket engine — ticketReducer, totalsOf: adding an item is an append, so two waiters ringing the same table sum instead of overwriting each other
  • Money — formatCents, splitEvenly, serviceChargeCents: cents only, and a split that never loses nor invents a centavo
  • Keyboard runtime — createKeymap: bindings declared once, dispatched by the runtime and drawn on the button by the UI
  • Theme — @fayz-ai/pos/theme: touch size as a token (≥19mm floor), pastel as category identity, position status on its own accent+icon+word axis

Install

npm install @fayz-ai/pos

Peer deps: react (^18/^19), lucide-react, zustand. Pulls in @fayz-ai/core.

Usage

import { PosScreen } from '@fayz-ai/pos'

<PosScreen
  config={restaurantConfig}
  categories={categories}
  items={items}
  positions={positions}
  terminalName="Caixa 1"
  onAction={handleAction}
/>

The running dogfood app is FayaLabs/chef-pos — a restaurant profile, a real PWA and the E2E suite. It is where a vertical's configuration belongs; this package stays the engine.

Part of the Fayz SDK

版本与发布记录

@fayz-ai/pos 共发布 69 个版本,首次发布于 2026/09/18;过去 12 个月发布了 69 个版本。

版本发布日期距今
0.27.18latest2026/11/112 天前
0.27.172026/11/113 天前
0.27.162026/11/068 天前
0.27.152026/11/059 天前
0.27.142026/11/0410 天前
0.27.132026/10/3015 天前

其他发布通道:canary → 0.27.13-canary.20261028153856。

关于 @fayz-ai/pos 的常见问题

@fayz-ai/pos 是什么?

Fayz SDK POS layer — the operator surface: one page, touch and keyboard, parameterised per vertical

如何安装 @fayz-ai/pos?

在项目目录运行 npm install @fayz-ai/pos,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.0.0 || ^19.0.0)、zustand(^4.5.0 || ^5.0.0)、react-dom(^18.0.0 || ^19.0.0)、lucide-react(>=0.400.0 <1.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fayz-ai/pos 支持 TypeScript 吗?

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

@fayz-ai/pos 支持 ESM 还是 CommonJS?

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

@fayz-ai/pos 可以商用吗?

@fayz-ai/pos 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fayz-ai/pos 的下载量有多少?

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

@fayz-ai/pos 还在维护吗?

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