@devfellowship/ux-paths-spec

中文文档
1.3.1发布于 2026/08/14MITTypeScriptES Module零依赖近 30 天下载 8443

DFL UX Paths数据合同:由它产生的v1 JSON Schema,TypeScript类型,以及零运行时间依赖和零网络一/O的验证().

中文使用文档
文档目录9 节
  1. 为什么这是单独的包
  2. 出口的东西
  3. 这个 $id 是一个名字,而不是地址
  4. 零运行时间依赖是一个测试属性
  5. 没有Ajv它怎么验证?
  6. 版本
  7. 改变计划
  8. 还没有在计划之中(一次v1.4对话)
  9. 许可证

@devfellowship/ux-paths-spec

DFL UX 路径 数据合同, 单独: v1 JSON Schema, TypeScript 生成类型,a validate() 与 零运行时间依赖关系 财务报告和审定财务报表 零网络 I/ 欧。 。 。 .

pnpm add @devfellowship/ux-paths-spec
import { validate, assertValid, SCHEMA_V1 } from "@devfellowship/ux-paths-spec";
import type { UxPathsDoc } from "@devfellowship/ux-paths-spec";

const result = validate(JSON.parse(text));
if (!result.valid) {
  for (const error of result.errors) console.error(error.formatted);
  //  screens[0].id: must be string (expected type: string)
  process.exit(1);
}
result.doc.screens; // typed as UxPathsDoc

// Or the throwing form, which narrows in place.
assertValid(doc, "itera-player.flows.json");

为什么这是单独的包

它的消费者是一个 CI 验证器页:1 抓取任务 还有一个 AI 探险家。 。 。 . 他们中没有人需要反应来发现 flows.json 身材不错, 其中一个在浏览器中运行。 计划是数据合同,所以它作为 数据——没有折叠到组件库中.

也结束了a 以承诺的方式保存销售副本。 。 。 . dfl-components-cli 携带自己的副本 v1.schema.json 附有评论 要求人类"在同一回合里模仿它". 一个承诺悄悄地失败了: 复制件会变质,验证器会继续退出 0, 和文档没有人应该有 接受航行通过。 这里,每一个文物 重复的策略是 生成 从它,CI失败 如果其中任何一个停止匹配.

出口的东西

导出这是什么
validate(doc, options?){ valid: true, doc } 或者说 { valid: false, errors }没有I/O,同步.
assertValid(doc, location?, options?)掷出 SpecValidationError; 窄处 doc 改为 UxPathsDoc 在成功方面.
formatErrors(errors)每犯一通人可读行.
SCHEMA_V1计划本身,作为一个物体.
SCHEMA_ID计划 $id。 。 。 . 一个名字,不是地址 - 见下文.
SUPPORTED_SCHEMA_VERSIONS["1.0.0", "1.1.0", "1.2.0", "1.3.0"]。 。 。 .
UxPathsDoc, (中文(简体) ), Screen, (中文(简体) ), Flow, (中文(简体) ), Screenshot, (中文(简体) ), SourceRef,, , , , , , , , 由计划生成的类型 .
stepScreenId, (中文(简体) ), flowScreenIds, (中文(简体) ), danglingScreenIdsJSON Schema规则的帮手不能表达.
assertSchemaSupported, (中文(简体) ), isDateTime, (中文(简体) ), isUri内部,输出用于测试.

原生的图案还装入了焦油丸,供非TypeScript的消费者使用:

import schema from "@devfellowship/ux-paths-spec/schema/v1.json" with { type: "json" };

这个 $id 是一个名字,而不是地址

SCHEMA_ID 实值 https://raw.githubusercontent.com/devfellowship/dfl-ux-paths/main/schema/v1.json。 。 。 .

dfl-ux-paths 是一个 私营 repo, 这样 URL 404s (中文(简体) ) 给外面的任何人 org - GitHub 报告一条私有路径为 未找到永远 禁用内容,所以请 失败把自己伪装成一个断开的链接. 这个 $id 识别 计划。 这个 从未被获取。 这个软件包在很大程度上是存在的,因此不需要尝试.

零运行时间依赖是一个测试属性

dependencies 未参加 package.json,以及 src/__tests__/package-contract.test.ts 如果出现, 如果运出源导入任何非相对的, 则无法构建 , 或者如果它提到 fetch 编号 : node:fs / 其他主机 API.

tsconfig.build.json 滴数 @types/node 从已发运的编译中, 所以 node: 导入为 a 编译出错 而不是有人记得的公约.

没有Ajv它怎么验证?

这个 解释 运行时的计策. validate() 读取 SCHEMA_V1 继续走 反之,这个计划是输入的,从不转录成 类型脚本 。 向上添加一个字段, 此校验符执行此字段时没有编辑 . 手写验证器会重新创建这个软件包的准确漂移 结束.

两名警卫守口如瓶

  • Ajv对等. Ajv是参考执行,并保持依赖性. src/__tests__/ajv-parity.test.ts 运行两个引擎 覆盖每一个承诺流量 文档加 ~ 30 单规则变异,并在任何分歧上失败.
  • 未知关键字为硬站. 解释者执行固定关键字 设置。 如果未来的计划使用了它不知道的, assertSchemaSupported() 掷出 命名关键词,而不是跳过它,悄悄接受 它应当拒绝的文件。 需要一个v1.4 maxLength 响亮的在这里失败,在 绕来绕去.

版本

major.minor 跟踪最高 schema_version 包裹承认.. 1.3.x (原始内容存档于2018-03-25). ships schema v1.3. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}一个图案V1.4就成功了 1.4.0。一个固定在 validate() 是一个 补丁起伏. 测试表明该版本和计划一致.

改变计划

schema/v1.json 地点 重传根 是真理的唯一来源。 编辑它,然后:

pnpm --filter @devfellowship/ux-paths-spec run generate

那个重写 spec/schema/v1.json (字节本), spec/src/schema.generated.ts 财务报告和审定财务报表 spec/src/types.generated.ts。不要用手来编辑这三个。 CI 运行 generate --check 并且失败, 如果您忘记了, 则命名陈旧的文件 .

还没有在计划之中(一次v1.4对话)

浏览器应用读取了三字段的图案 从未定义数字 : requirements[], (中文(简体) ), screen.fidelity 财务报告和审定财务报表 screen.archetype (单位:千美元) screen.page_class) (中文(简体) ). 计划 additionalProperties: false 上层和上层 $defs/screen, (中文(简体) ), 因此,一个文件 携带其中任何一个是 拒绝 - 这是一个真正的差距,不是 允许额外。 3个承诺的查看器固定装置无法验证 理由,还有 ajv-parity.test.ts 用两台引擎把事实钉住,这样就留下 在 v1.4 关闭前可见.

许可证

麻省理工学院.

版本与发布记录

@devfellowship/ux-paths-spec 共发布 2 个版本,首次发布于 2026/08/13;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.3.1latest2026/08/142 个月前
1.3.02026/08/132 个月前

关于 @devfellowship/ux-paths-spec 的常见问题

@devfellowship/ux-paths-spec 是什么?

DFL UX Paths数据合同:由它产生的v1 JSON Schema,TypeScript类型,以及零运行时间依赖和零网络一/O的验证().

如何安装 @devfellowship/ux-paths-spec?

在项目目录运行 npm install @devfellowship/ux-paths-spec,或使用 pnpm add / yarn add / bun add。

@devfellowship/ux-paths-spec 支持 TypeScript 吗?

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

@devfellowship/ux-paths-spec 支持 ESM 还是 CommonJS?

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

@devfellowship/ux-paths-spec 需要什么版本的 Node.js?

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

@devfellowship/ux-paths-spec 可以商用吗?

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

@devfellowship/ux-paths-spec 的下载量有多少?

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

@devfellowship/ux-paths-spec 还在维护吗?

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