@altnovatrail/contracts

中文文档
0.9.6发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 3187

NovaTrail的API合同代码为TypeScript,原生-gen-es从他们的原生-取出文件:每个合同的电文和enum,及其描述符,用于@bufbuilt/protobuf和Connect.

中文使用文档
文档目录4 节
  1. 测试向量
  2. 版本数
  3. 正在检查归档
  4. 许可证

@altnovatrail/ 合同

代码 新拖车API关于TypeScript的合同:每份合同的电文和语句及其描述词,用于 原生出产 和连接。 合同是原生文件 contracts/ 内 altnovatrail/spec,他们的文本是 contracts/README.md。 。 。 . protoc-gen-es 从它们生成此代码: JavaScript 及其声明。 Go 代码从 Go 模块中获取相同的合同 github.com/altnovatrail/spec/contracts标记 contracts/vX.Y.Z 成员数目相同.

代码文件的路径导出 .proto 文件为 _pb.js 改为: .proto数字 :

import { create, fromJson, toJson } from "@bufbuild/protobuf";
import { ObservationSchema, Unreadable } from "@altnovatrail/contracts/novatrail/observation/v1/observation_pb.js";

const observation = fromJson(ObservationSchema, json);
const written = toJson(ObservationSchema, observation, { useProtoFieldName: true });

密码输入了原生生物的运行时间, @bufbuild/protobuf,该软件包在准确版本中取决于 protoc-gen-es 写下来的 也使用该版本的运行时间,或者让 npm 用软件包安装它.

一个合同的JSON将每个字段命名为原生字段的名称,以蛇为例,作为文件 spec 做:不管它写了什么 useProtoFieldName: true 改为 toJson。阅读器既取原名,又取下CamelCase 的名,作为 fromJson 实际数(合同文本页:1 该套件没有JSON的类型: protoc-gen-es 会把它们拼入下卡梅尔Case.

该套件通过它的 exports下页 "moduleResolution": "nodenext", (中文(简体) ), "node16" 或者说 "bundler"。 。 。 . spec 严格地用TypeScript 7来检查其申报,并在节点下运行其代码.

测试向量

套件带有设备与eval跑者共享的规则的测试向量——写作历史如何折叠,打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出打出出打出打出出合同文本,第12节)——按路径逐一输出,作为JSON:

import { fromJson } from "@bufbuild/protobuf";
import { HistorySchema } from "@altnovatrail/contracts/novatrail/eval/v1/sample_pb.js";
import groups from "@altnovatrail/contracts/vectors/eval/v1/groups.json" with { type: "json" };

for (const one of groups.cases) {
  const history = fromJson(HistorySchema, one.history);
  // fold the history, make its groups, and compare them with one.visible, one.groups, ...
}

他们的留言用原生取出的名字和每个字段来写,一个读者用它从这个包代码中发来的留言的图谋来取出每个字段. 遵循规则的守则通过每个案件。 观测的向量单在Go模块:TypeScript给出没有判断.

版本数

软件包的版本是: altnovatrail/spec 它来自,没有它的 v: 0.7.0为 v0.7.0. 0.7行的每放出一次,即使合同没有改变。 以准确的版本,相同的标签 spec 子模块和 Go模块 spec 你抱住他们,把他们都带走 离开Deptabot,作为Go模块:发布 spec 随其文件的修改而出。 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}看情况 ignore 匹配列表给出的名称的依赖关系, @altnovatrail/contracts 在这里,和 github.com/altnovatrail/spec/contracts 为GO模块.

在合同的最后一部分, v1 ——只补充出. 一个打破它的变化 是一个新的一揽子, v2在旧的旁边 在一条新的线上 spec (单位:千美元)合同文本页:1.

正在检查归档

Npm 中的归档是文件 altnovatrail-contracts-<version>.tgz 上面写着释放物的标志 并注明其名称 NovaTrail 寄存器只让软件包输入其代码一次 spec's release-verify-npm 已接受其锁文件,在更改它的拉力请求的CI中(Spec 第R77号决定; 规则.md硬规则). 它从仓库里流出 spec 子模块 :

just -f spec/justfile release-verify-npm package-lock.json

对于这个软件包,它从注册处下载了档案,并对照Sigstore的信任根和同名文件的同名签名捆绑来检查 altnovatrail/spec。归档必须由 spec 自己签名 .github/workflows/release.yml 打开 main,并按其版本与其标签绑定 package.json 别动 最后,锁文件 integrity 必须是所检查的字节的散列 。 检查一个档案,旁边有包 just -f spec/justfile release-verify spec v0.7.0 altnovatrail-contracts-0.7.0.tgz。 。 。 .

释放的证明将档案与释放联系起来,而不是与犯罪有关,以及 gh release verify-asset 检查它分开:

npm pack @altnovatrail/[email protected]
gh release verify-asset v0.7.0 altnovatrail-contracts-0.7.0.tgz -R altnovatrail/spec

发布会通过信任的出版方式,将文件发布给npm本身,npm给出每个版本,从而发布出处证明. 来源名称 .github/workflows/release.yml 联 合 国 altnovatrail/spec 以及发表它的运行,这是 main 当运行开始,而不是总是承诺 释放被切断。 0.7.0是手工出版的,没有出处. 运行未发布版本的发行者——发行前发布的发行者,或发布失败而未再运行的发行者——没有npm,故取其版本存在的标签.

许可证

阿帕奇 - 2.0运行时间, @bufbuild/protobuf,位于Apache-2.0和BSD-3-Clause下.

版本与发布记录

@altnovatrail/contracts 共发布 24 个版本,首次发布于 2026/11/03;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.6latest2026/11/07今天
0.9.52026/11/07今天
0.9.42026/11/07今天
0.9.32026/11/07今天
0.9.22026/11/043 天前
0.9.12026/11/043 天前

关于 @altnovatrail/contracts 的常见问题

@altnovatrail/contracts 是什么?

NovaTrail的API合同代码为TypeScript,原生-gen-es从他们的原生-取出文件:每个合同的电文和enum,及其描述符,用于@bufbuilt/protobuf和Connect.

如何安装 @altnovatrail/contracts?

在项目目录运行 npm install @altnovatrail/contracts,或使用 pnpm add / yarn add / bun add。

@altnovatrail/contracts 支持 TypeScript 吗?

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

@altnovatrail/contracts 支持 ESM 还是 CommonJS?

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

@altnovatrail/contracts 可以商用吗?

@altnovatrail/contracts 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@altnovatrail/contracts 的下载量有多少?

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

@altnovatrail/contracts 还在维护吗?

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